Чтобы создать календарь с рабочими и выходными днями при графике 4/2 в PHP, вам понадобится некоторый код для определения, какие дни являются выходными, а какие дни являются рабочими.
Первым шагом будет определить, какой день недели является начальным днем вашего календаря. Для этого можно использовать функцию date('N', strtotime($start_date))
, где $start_date
- это стартовая дата вашего календаря. Функция date('N')
возвращает номер дня недели (от 1 до 7), где 1 - понедельник, 2 - вторник и т.д.
Затем вы можете создать цикл, чтобы пройти по всем дням в вашем календаре и определить, является ли конкретный день рабочим или выходным. Для этого можно использовать функцию date('N', strtotime($date))
, где $date
- это текущая дата, которую вы проверяете. Если число, возвращаемое функцией date('N')
делится на 6 без остатка, то это суббота или воскресенье, и они будут выходными днями. В противном случае, это будний день и будет рабочим днем.
Вот пример кода, который поможет вам создать календарь с рабочими и выходными днями при графике 4/2 в PHP:
function isWeekend($date) { return (date('N', strtotime($date)) % 6 === 0); } function generateCalendar($start_date, $num_days) { $calendar = []; for ($i = 0; $i < $num_days; $i++) { $date = date('Y-m-d', strtotime($start_date . ' + ' . $i . ' days')); $is_weekend = isWeekend($date); if ($i % 6 < 4) { $calendar[$date] = $is_weekend ? 'Выходной' : 'Рабочий'; } else { $calendar[$date] = 'Выходной'; } } return $calendar; } $start_date = '2022-01-01'; $num_days = 365; $calendar = generateCalendar($start_date, $num_days); // Выводим календарь foreach ($calendar as $date => $status) { echo $date . ' - ' . $status . '<br>'; }
В этом примере кода функция generateCalendar()
принимает стартовую дату и количество дней, которое вы хотите добавить к календарю. Она возвращает ассоциативный массив, где ключами являются даты, а значениями - статусы (работа или выходной).
В цикле мы проверяем, является ли текущая дата рабочим или выходным днем, и указываем соответствующий статус в массиве $calendar
. Если текущий день является пятницей или любым рабочим днем внутри интервала 4 рабочих дня / 2 выходных дня, то мы помечаем его как рабочий день. В противном случае, мы помечаем его как выходной день.
После генерации календаря мы можем использовать цикл foreach
для вывода дат и их статусов.
Надеюсь, это поможет вам создать календарь с рабочими и выходными днями при графике 4/2 на PHP! Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать.