下一个工作日
这将查找特定日期的下一个工作日(不包括星期六或星期日):
echo date('Y-m-d', strtotime('2011-04-05 +1 Weekday'));
当然,您也可以使用日期变量来执行此操作:
$myDate = '2011-04-05';
echo date('Y-m-d', strtotime($myDate . ' +1 Weekday'));
更新:或者,如果您有权访问PHP的DateTime类(很可能):
$date = new DateTime('2018-01-27');
$date->modify('+7 weekday');
echo $date->format('Y-m-d');
想要跳过假期吗?
虽然原来的海报上提到“我不需要考虑假期”,但如果你碰巧想忽略假期,只要记住 - “假期”只是你不想包括的任何日期的数组,并且按国家,地区,公司,个人而有所不同......等。
只需将上述代码放入一个函数中,该函数排除/循环超过您不希望包含的日期。像这样:
$tmpDate = '2015-06-22';
$holidays = ['2015-07-04', '2015-10-31', '2015-12-25'];
$i = 1;
$nextBusinessDay = date('Y-m-d', strtotime($tmpDate . ' +' . $i . ' Weekday'));
while (in_array($nextBusinessDay, $holidays)) {
$i++;
$nextBusinessDay = date('Y-m-d', strtotime($tmpDate . ' +' . $i . ' Weekday'));
}
我相信如果你愿意,上面的代码可以简化或缩短。我试图以一种易于理解的方式写它。