我有这个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天...