|
Автор: Большой Грызь
Дата : 19-05-03, Пнд, 11:41:09
|
Я тут для пары разделов портала решил сделать календарик. А потом подумал, что кому-то это может оказаться полезным.
Ниже привожу код. Может не самый оптимальный - набросал за часик саму идею, даже без особого дизайна. Вопросы по коду можете задавать отвечу.
<HTML> <BODY> <?PHP $month_short_name = array(1=>"ЯНВ","ФЕВ","МАР","АПР","МАЙ","ИЮН","ИЮЛ","АВГ","СЕН","ОКТ","НОЯ","ДЕК" ); //------------------------ // Initializing date vars //------------------------ $today = getdate(); $mday = $today["mday"];
if (!isset($month)) $month = $today["mon"]; if (!isset($year)) $year = $today["year"];
if ( ($month != $today["mon"]) || ($year != $today["year"]) ) { $today = getdate(mktime (0,0,0,$month,$mday,$year)); } $wday = $today["wday"];
//---------------------------- // Initializing calendar grid //---------------------------- for ($col=0; $col<7; $col++) for ($row=0; $row<6; $row++) $CalendarDays [$col][$row] = -1;
//---------------------------- // Filling calendar grid //---------------------------- $col = (71+$wday-$mday)%7; $row = 0; $day = 1;
while (checkdate ($month, $day, $year)) { $CalendarDays [$col][$row] = $day; $col++; if ($col>=7) { $col = 0; $row++; } $day++; } if ($col == 0) $row--;
//---------------------------- // Printing the calendar //---------------------------- print ("<TABLE CELLSPACING=0 CELLPADDING=3 BORDER=1>\n" ); print ("<TR><TD COLSPAN=7 ALIGN=CENTER><B>" );
//---------------------------- // Printing month & year selection bar //----------------------------
print ("<A HREF=\"calendar.php?month=".(($month+10)%12+1)."&year=$year\"><<</A> " ); print ($month_short_name [$month]); print (" <A HREF=\"calendar.php?month=".($month%12+1)."&year=$year\">>></A>" );
print (" " );
print ("<A HREF=\"?month=$month&year=".($year-1)."\"><<</A> " ); print ($year); print (" <A HREF=\"?month=$month&year=".($year+1)."\">>></A>" );
print ("</B></TD></TR>" );
//---------------------------- // Printing calendar grid //---------------------------- print ("<TR BGCOLOR=#F0F0FF><TD>Вс</TD><TD>Пн</TD><TD>Вт</TD><TD>Ср</TD><TD>Чт</TD><TD>Пт</TD><TD>Сб</TD></TR>\n" ); for ($j=0; $j<=$row; $j++) { print ("<TR>\n" ); for ($i=0; $i<7; $i++) { print ("<TD>" ); if ($CalendarDays [$i][$j] != -1) print ($CalendarDays [$i][$j]); else print (" " ); print ("</TD>" ); } print ("</TR>\n" ); } print ("</TABLE>" ); ?> </BODY> </HTML>
|
Жизнь человека немного стоит по сравнению с его делом. Но чтобы делать дело, надо жить. (Э. Хемингуэй) |
|