首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php加X天,但不包括周日(strtotime("$newDate +2 Weekday“));)

php加X天,但不包括周日(strtotime("$newDate +2 Weekday“));)
EN

Stack Overflow用户
提问于 2021-03-16 15:38:16
回答 2查看 22关注 0票数 0

使用以下代码,我能够给我的网站上估计3-5个工作日的交付日期。

代码语言:javascript
复制
<?php
$today = date('Y-m-d');
$numDays=3;
$holidays = 'https://www.gov.uk/bank-holidays/england-and-wales.ics';

    if (!is_array($holidays)) {
        $ch = curl_init($holidays);
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
        $ics = curl_exec($ch);
        curl_close($ch);
        $ics = explode("\n",$ics);
        $ics = preg_grep('/^DTSTART;/',$ics);
        $holidays = preg_replace('/^DTSTART;VALUE=DATE:(\\d{4})(\\d{2})(\\d{2}).*/s','$1-$2-$3',$ics);
    }

    $addDay = 0;
    while ($numDays--) {
        while (true) {
            $addDay++;
            $newDate = date('Y-m-d', strtotime("$date +$addDay Days"));
            $EarliestArrival = date('D jS', strtotime("$newDate +1 Days")); 
            $LatestArrival = date('D jS M', strtotime("$newDate +2 Days"));             
            $newDayOfWeek = date('w', strtotime($newDate));
            $newDayOfWeekText = date('D', strtotime($newDate));
            $newDateUKFormat = date('jS M', strtotime("$date +$addDay Days"));
            if ( $newDayOfWeek>0 && $newDayOfWeek<6 && !in_array($newDate,$holidays)) break;
        }
    }
?>
<div class="3_5daydispatch">Order today for dispatch: <?php echo $newDayOfWeekText; ?> <?php echo $newDateUKFormat; ?><br>Receive between: <?php echo $EarliestArrival; ?> & <?php echo $LatestArrival; ?></div>

我的问题是,由于代码的编写方式,估计的交付日期目前包括周日,这不应该包括周日,因为周日对我们来说不是一个交付日期。

有没有一种方法可以+X天,但不包括周日,以便可以与我当前的代码一起工作?

我没有做过太多的尝试,因为我对从哪里开始做这个没有一点头绪。我搜索了几个类似的主题,但解决方案似乎不适合我的代码流?提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2021-03-16 15:45:11

代码语言:javascript
复制
$newDate +1 Weekday

今天似乎做到了,但明天会再次显示周日最早到达,所以这不是理想的解决方案

票数 0
EN

Stack Overflow用户

发布于 2021-03-16 17:23:56

尝试使用此辅助函数

代码语言:javascript
复制
function isWeekend($date) {
    return (date('N', strtotime($date)) >= 6);
}

每天检查周末是否倒计时

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66650797

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档