Календарь на PHP№ 1
Автор: Большой Грызь
Дата : 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\">&lt;&lt;</A> " );
print ($month_short_name [$month]);
print (" <A HREF=\"calendar.php?month=".($month%12+1)."&year=$year\">&gt;&gt;</A>" );

print (" &nbsp;&nbsp;&nbsp; " );

print ("<A HREF=\"?month=$month&year=".($year-1)."\">&lt;&lt;</A> " );
print ($year);
print (" <A HREF=\"?month=$month&year=".($year+1)."\">&gt;&gt;</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 ("&nbsp;" );
       print ("</TD>" );
   }
   print ("</TR>\n" );
}
print ("</TABLE>" );
?>
</BODY>
</HTML>
Жизнь человека немного стоит по сравнению с его делом.
Но чтобы делать дело, надо жить.
(Э. Хемингуэй)
Профиль 


Вы не зарегистрированы либо не вошли в портал!!!
Регистрация или вход в портал - в главном меню.



 Просмотров:   002405    Постингов:   000001