Привет! Для создания календаря на PHP с отображением рабочих и выходных дней, можно использовать функции и операторы PHP для работы с датами.
Вот пример кода, который создает календарь на текущий месяц с отображением рабочих и выходных дней:
```php
<?php
// Определение рабочих и выходных дней
$workingDays = [1, 2, 3, 4]; // Понедельник, вторник, среда, четверг
$weekendDays = [5, 6]; // Пятница, суббота
// Получение текущего месяца и года
$month = date('n');
$year = date('Y');
// Получение количества дней в текущем месяце
$daysInMonth = cal_days_in_month(CAL_GREGORIAN, $month, $year);
// Создание таблицы календаря
echo '<table>';
// Создание заголовка таблицы
echo '<tr>';
echo '<th>Пн</th>';
echo '<th>Вт</th>';
echo '<th>Ср</th>';
echo '<th>Чт</th>';
echo '<th>Пт</th>';
echo '<th>Сб</th>';
echo '<th>Вс</th>';
echo '</tr>';
// Создание строк с днями месяца
for ($day = 1; $day <= $daysInMonth; $day++) {
// Определение типа дня (рабочий или выходной)
if (in_array(date('N', strtotime($year . '-' . $month . '-' . $day)), $workingDays)) {
$type = 'working';
} elseif (in_array(date('N', strtotime($year . '-' . $month . '-' . $day)), $weekendDays)) {
$type = 'weekend';
} else {
$type = 'other';
}
// Добавление ячейки с днем в таблицу
echo '<td class="' . $type . '">' . $day . '</td>';
// Если текущий день - воскресенье, переход на новую строку
if (date('N', strtotime($year . '-' . $month . '-' . $day)) == 7) {
echo '</tr><tr>';
}
}
// Завершение таблицы
echo '</table>';
?>
```
В этом примере каждый день месяца проверяется на принадлежность к рабочим или выходным дням. Если текущий день относится к рабочим дням, то в таблицу добавляется ячейка с классом "working". Если текущий день относится к выходным дням, то в таблицу добавляется ячейка с классом "weekend". В остальных случаях ячейка добавляется с классом "other".
Можно использовать стили CSS, чтобы стилизовать таблицу и ячейки в зависимости от их классов. Например:
```css
table {
width: 100%;
border-collapse: collapse;
}
th, td {
padding: 5px;
text-align: center;
border: 1px solid #000;
}
th {
background: #ccc;
}
td.working {
background: #fff;
}
td.weekend {
background: #f00;
}
td.other {
background: #eee;
}
```
Это лишь базовый пример, и вы можете доработать код и стили в соответствии с вашими требованиями.