计算工作日的PHP函数增加了一天



我有这个PHP function

function calculateNextDate($startDate, $days)
{
    $dateTime = new DateTime($startDate);
        while($days) {
            $dateTime->add(new DateInterval('P1D'));    
            if ($dateTime->format('N') < 6) {
                $days--;
            }
        }
    return $dateTime->format('Y-m-d');
}

它从给定天数的开始日期计算它将是哪个日期,并跳过周末。

如果我回应这个:

echo calculateNextDate('2012-10-01', '10');

它将打印:

2012-10-15

这是错误的... 2012-10-01 + 10 个工作日是2012-10-12

知道为什么它会增加另一天吗?

我的好先生,1 + 10 = 11,而不是 10。

因此,如果你要求用你的算法在 10 月 1 日增加 10 天,它不会给出星期五 12,它真的给出星期一 15......

你想要星期五吗?然后是9天...

最新更新