Скрипт предназначен для отображения календаря на текущий месяц
Календарь в американском формате
< ?php // Вычисляем число дней в текущем месяце $dayofmonth = date('t'); // Счётчик для дней месяца $day_count = 1; // 1. Первая неделя $num = 0; for($i = 0; $i < 7; $i++) { // Вычисляем номер дня недели для числа $dayofweek = date('w', mktime(0, 0, 0, date('m'), $day_count, date('Y'))); // Приводим к числа к формату 1 - понедельник, ..., 6 - суббота $dayofweek = $dayofweek - 1; if($dayofweek == -1) $dayofweek = 6; if($dayofweek == $i) { // Если дни недели совпадают, // заполняем массив $week // числами месяца $week[$num][$i] = $day_count; $day_count++; } else { $week[$num][$i] = ""; } } // 2. Последующие недели месяца while(true) { $num++; for($i = 0; $i < 7; $i++) { $week[$num][$i] = $day_count; $day_count++; // Если достигли конца месяца - выходим // из цикла if($day_count > $dayofmonth) break; } // Если достигли конца месяца - выходим // из цикла if($day_count > $dayofmonth) break; } // 3. Выводим содержимое массива $week // в виде календаря // Выводим таблицу echo "< table border=1>"; for($i = 0; $i < count($week); $i++) { echo "< tr>"; for($j = 0; $j < 7; $j++) { if(!empty($week[$i][$j])) { // Если имеем дело с субботой и воскресенья // подсвечиваем их if($j == 5 || $j == 6) echo "< td>< font color=red>".$week[$i][$j]."< /font>< /td>"; else echo "< td>".$week[$i][$j]."< /td>"; } else echo "< td> < /td>"; } echo "< /tr>"; } echo "< /table>"; ?>
Для того чтобы вывести календарь в российком формате, необходимо изменить только блок вывода 3
Календарь в российком формате
< ?php ... // Выводим содержимое массива $week // в виде календаря // Выводим таблицу echo "< table border=1>"; for($j = 0; $j < 7; $j++) { echo "< tr>"; for($i = 0; $i < count($week); $i++) { if(!empty($week[$i][$j])) { // Если имеем дело с субботой и воскресенья // подсвечиваем их if($j == 5 || $j == 6) echo "< td>< font color=red>".$week[$i][$j]."< /font>< /td>"; else echo "< td>".$week[$i][$j]."< /td>"; } else echo "< td> < /td>"; } echo "< /tr>"; } echo "< /table>"; ?>
Для того чтобы вывести календарь на произвольный месяц, достаточно передать в качестве второго параметра функции date() любую дату месяца в виде числа секунд, прошедших с полуночи 1 января 1970 года.
Постоянные ссылки
При копировании ссылка на TeaM RSN обязательна!
Оставить комментарий
Вы должны войти, чтобы оставить комментарий.