У меня есть функция расписания даты в 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;
Это, наверное, что-то очень маленькое, что мне не хватает, но любая помощь будет принята с благодарностью! Спасибо
Я думаю, что это простая логическая ошибка.
Внутри while
цикл вы обновляете $day
, но foreach
цикл продолжает выполнять остальную часть кода.
Еще лучше, вы можете избежать while
цикл по:
if($day > 5)
continue;
Других решений пока нет …