0

我在 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;

这可能是我错过的非常小的东西,但任何帮助将不胜感激!谢谢

4

1 回答 1

1

我认为这是一个简单的逻辑错误。

while您正在更新的循环内$day,但foreach循环继续执行其余代码。

更好的是,您可以while通过以下方式避免循环:

if($day > 5)
    continue;
于 2015-08-05T10:45:04.320 回答