我在PHP中有一个日期安排功能,目的只在工作日执行。我现在的代码是生成一周中所有日子的时间表,因此while语句似乎不起作用,我不确定原因。
我是学生,所以我对这种事情不是很有经验。这是我到目前为止的代码:
public static function generate_date_schedule($tasksperdayschedule, $startdate) {
$schedule = [];
$date = clone $startdate;
foreach ($tasksperdayschedule as $numberoftasks) {
$day = (int)$date->format('N');
// Skip weekend days.
while ($day > 5) {
$date->add(new DateInterval('P1D'));
$day = (int)$date->format('N');
}
$schedule[$date->format(self::DATE_FORMAT)] = $numberoftasks;
$date->add(new DateInterval('P1D'));
}
return $schedule;
这可能是我想念的非常小的东西,但任何帮助都将不胜感激!感谢
答案 0 :(得分:1)
我认为这是一个简单的逻辑错误。
在while
循环中,您正在更新$day
,但foreach
循环继续执行其余代码。
更好的是,您可以通过以下方式避免while
循环:
if($day > 5)
continue;