Создание и вывод календаря
Необходимость вывести на сайте календарь какого-то месяца возникает достаточно часто. Каждый раз придумывать алгоритм заново уже надоело. Поэтому я решил записать, как это делается :).
Сначала пишем функцию, которая создаст календарь месяца (уже разделенный на недели) и сохранит его в массив.
Параметры:
$month- месяц, для которого делаем календарь$year- год, для месяца$monthкоторого делаем календарь
PHP:
-
function make_calendar($month, $year) {
-
for ($j = 0; $j < $weeksInMonth; $j++) {
-
for ($i = 0; $i < 7; $i++) {
-
$counter++;
-
$week[$j][$i] = $counter;
-
// сдвигаем дни
-
$week[$j][$i] -= $firstDay;
-
if (($week[$j][$i] < 1) || ($week[$j][$i] > $daysInMonth)) {
-
$week[$j][$i] = "";
-
}
-
} // for 0..6 - дни
-
} // проходим по неделям
-
-
return $week;
-
} // make_calendar
Теперь вызываем функцию и делаем календарь текущего месяца:
И, собственно, выводим то, что у нас получилось:
PHP:
-
<table border="0" cellpadding="2" cellspacing="0">
-
<tr>
-
<th>Mo</th>
-
<th>Tu</th>
-
<th>We</th>
-
<th>Th</th>
-
<th>Fr</th>
-
<th>Sa</th>
-
<th>Su</th>
-
</tr>
-
<?
-
?>
-
<tr>
-
<?
-
?>
-
<?
-
} // дни
-
?>
-
</tr>
-
<?
-
} // недели
-
?>
-
</table>


May 15th, 2007 at 16:18 Quote
Автор, а ты сам то скрипты проверял те что постишь???
May 16th, 2007 at 06:58 Quote
dmi3j @ 15.05.2007, 16:18 #
посетитель, я проверял. я написал это для живого сайта и потом уже запостил сюда.
date("N", $tmptime)
PHP 5.1.0+
rtfm
P.S. код несколько исправлен, теперь работает и с PHP4
May 21st, 2007 at 13:58 Quote
Дим, short-tags - плохая идея ;-)
May 21st, 2007 at 14:05 Quote
NeX1k @ 21.05.2007, 13:58 #
why?
я использую их редко, но все равно...
May 24th, 2007 at 14:17 Quote
Filosoff @ 21.05.2007, 14:05 #
Ну, например, если работать с XMLом, там какие-то глюки могут возникнуть, или если попросту на сервере они отключены :-) Не проблема, конечно же, но все же ;-)
November 27th, 2007 at 22:45 Quote
нехватает строчки
$counter=0;
В теле функции ;)