Как высчитать дату с учётом выходных?
Не знаю с какой стороны подступиться. Задача такая: высчитать дату через n (14, например) дней от сегодняшней, но с учётом выходных/не рабочих дней, то есть прибавлять, если выходные в этот период есть. Плюс надо учесть, что конечная дата тоже может попасть на выходной и, соответственно, тоже сдвинуть надо. Выходные могут быть в любые дни и будут устанавливаться через тв чекбоксами вида: дд.мм. Вывод тоже в дд.мм.
Комментарии: 4
Просто зацикливаешь, пока не получишь определенное кол-во дней. Но тут, есть ньюанс, когда рабочий день суббота, с этим пока не думал, как реализовать. Видимо нужно в исключение добавить.
<?php
$cout_day = 14; //кол-во дней
$holidayDates = [
'2021-07-08',
'2021-07-13',
'2021-07-21',
'2021-07-26'
];
$countWD = 0;
$temp = strtotime("2021-07-01 00:00:00"); //дата старта
while($countWD < $cout_day){
$next1WD = strtotime('+1 weekday', $temp);
$next1WDDate = date('Y-m-d', $next1WD);
if(!in_array($next1WDDate, $holidayDates)){
$countWD++;
}
$temp = $next1WD;
}
$nextWD = date("Y-m-d", $temp);
echo $nextWD;
Спасибо за код и направление! То, что нужно. Выходные (сб, вс) не нужны, всё будет из массива. Так что days вместо weekday и всё.
А как из тв перевести в массив? тв чекбоксы, напр.: 10.07||11.07||12.07||13.07 и т.д.
Вопрос снят. Можно через explode.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.