Скрипт предназначен для отображения календаря на текущий месяц
Календарь в американском формате
HTML
Текст
- < ?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
Календарь в российком формате
HTML
Текст
- < ?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 обязательна!
Оставить комментарий
Вы должны войти, чтобы оставить комментарий.