Функция ниже должна вернуться на следующий рабочий день. Принимает во внимание праздники и выходные. Проблема в странном поведении в конце (см. Изображение ниже кода)
class test{
private static $i;
static function getNextWorkingDay(DateTimeInterface $dateTime) {
self::$i++;
dump("Iteration n°: ".self::$i. " Date: ".$dateTime->format('d/m/Y'));
$dateTime = (new DateTime())->setTimestamp($dateTime->getTimestamp());
if (self::isWeekend($dateTime)) {
dump("Iteration n°: ".self::$i." Weekend");
self::getNextWorkingDay($dateTime->modify('next monday'));
}
if (self::isNotWorkable($dateTime)) {
dump("Iteration n°: ".self::$i." Not workable");
self::getNextWorkingDay($dateTime->modify('next day'));
}
dump("Iteration n°: ".self::$i. " This date should be returned and end the function: ".$dateTime->format('d/m/Y'));
return $dateTime;
}
}
Тестирование с датой = 2020-05-01
Я ожидаю 2020-05 -04 но возвращается 2020-05-02