Регистрация Войти
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Войти через VK Войти через FB Войти через Google Войти через Яндекс
Поиск по сайту
Календарь на текущий месяц
Пример формирует календарь на текущий месяц на PHP
Пн | Вт | Ср | Чт | Пт | Сб | Вс |
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
// Функция формирует двумерный массив, представляющий собой
// календарь на указанный месяц и год. Массив состоит из строк,
// соответствующих неделям. Каждая строка - массив из семи
// элементов, которые равны числам (или пустой строке, если
// данная клетка календаря пуста).
function makeCal($year, $month) {
// Получаем номер дня недели для 1 числа месяца. Корректируем
// его, чтобы воскресенье соответствовало числу 7, а не числу 0.
$wday = JDDayOfWeek(GregorianToJD($month, 1, $year), 0);
if ($wday == 0) $wday = 7;
// Начинаем с этого числа в месяце (если меньше нуля
// или больше длины месяца, тогда в календаре будет пропуск).
$n = - ($wday - 2);
$cal = [];
// Цикл по строкам.
for ($y=0; $y<6; $y++) {
// Будущая строка. Вначале пуста.
$row = [];
$notEmpty = false;
// Цикл внутри строки по дням недели.
for ($x=0; $x<7; $x++, $n++) {
// Текущее число >0 и < длины месяца?
if (checkdate($month, $n, $year)) {
// Да. Заполняем клетку.
$row[] = $n;
$notEmpty = true;
} else {
// Нет. Клетка пуста.
$row[] = "";
}
}
// Если в данной строке нет ни одного непустого элемента,
// значит, месяц кончился.
if (!$notEmpty) break;
// Добавляем строку в массив.
$cal[] = $row;
}
return $cal;
}
// Формируем календарь на текущий месяц.
$now = getdate();
$cal = makeCal($now['year'], $now['mon']);
?>
<!-- Шаблон вывода календаря. -->
<table border=1>
<tr>
<td>Пн</td>
<td>Вт</td>
<td>Ср</td>
<td>Чт</td>
<td>Пт</td>
<td>Сб</td>
<td style="color:red">Вс</td>
</tr>
<!-- цикл по строкам -->
<tr>
<!-- цикл по столбам -->
<!-- воскресенье - "красный" день -->
<td style="">
</td>
<!-- воскресенье - "красный" день -->
<td style="">
</td>
<!-- воскресенье - "красный" день -->
<td style="">
</td>
<!-- воскресенье - "красный" день -->
<td style="">
</td>
<!-- воскресенье - "красный" день -->
<td style="">
</td>
<!-- воскресенье - "красный" день -->
<td style="">
</td>
<!-- воскресенье - "красный" день -->
<td style="color:red">
1 </td>
</tr>
<tr>
<!-- цикл по столбам -->
<!-- воскресенье - "красный" день -->
<td style="">
2 </td>
<!-- воскресенье - "красный" день -->
<td style="">
3 </td>
<!-- воскресенье - "красный" день -->
<td style="">
4 </td>
<!-- воскресенье - "красный" день -->
<td style="">
5 </td>
<!-- воскресенье - "красный" день -->
<td style="">
6 </td>
<!-- воскресенье - "красный" день -->
<td style="">
7 </td>
<!-- воскресенье - "красный" день -->
<td style="color:red">
8 </td>
</tr>
<tr>
<!-- цикл по столбам -->
<!-- воскресенье - "красный" день -->
<td style="">
9 </td>
<!-- воскресенье - "красный" день -->
<td style="">
10 </td>
<!-- воскресенье - "красный" день -->
<td style="">
11 </td>
<!-- воскресенье - "красный" день -->
<td style="">
12 </td>
<!-- воскресенье - "красный" день -->
<td style="">
13 </td>
<!-- воскресенье - "красный" день -->
<td style="">
14 </td>
<!-- воскресенье - "красный" день -->
<td style="color:red">
15 </td>
</tr>
<tr>
<!-- цикл по столбам -->
<!-- воскресенье - "красный" день -->
<td style="">
16 </td>
<!-- воскресенье - "красный" день -->
<td style="">
17 </td>
<!-- воскресенье - "красный" день -->
<td style="">
18 </td>
<!-- воскресенье - "красный" день -->
<td style="">
19 </td>
<!-- воскресенье - "красный" день -->
<td style="">
20 </td>
<!-- воскресенье - "красный" день -->
<td style="">
21 </td>
<!-- воскресенье - "красный" день -->
<td style="color:red">
22 </td>
</tr>
<tr>
<!-- цикл по столбам -->
<!-- воскресенье - "красный" день -->
<td style="">
23 </td>
<!-- воскресенье - "красный" день -->
<td style="">
24 </td>
<!-- воскресенье - "красный" день -->
<td style="">
25 </td>
<!-- воскресенье - "красный" день -->
<td style="">
26 </td>
<!-- воскресенье - "красный" день -->
<td style="">
27 </td>
<!-- воскресенье - "красный" день -->
<td style="">
28 </td>
<!-- воскресенье - "красный" день -->
<td style="color:red">
29 </td>
</tr>
<tr>
<!-- цикл по столбам -->
<!-- воскресенье - "красный" день -->
<td style="">
30 </td>
<!-- воскресенье - "красный" день -->
<td style="">
31 </td>
<!-- воскресенье - "красный" день -->
<td style="">
</td>
<!-- воскресенье - "красный" день -->
<td style="">
</td>
<!-- воскресенье - "красный" день -->
<td style="">
</td>
<!-- воскресенье - "красный" день -->
<td style="">
</td>
<!-- воскресенье - "красный" день -->
<td style="color:red">
</td>
</tr>
</table>
Смотрите также:
календарь на javascript
календарь на javascript в виде объекта
.
Прокомментировать/Отблагодарить