Created
June 18, 2010 10:00
-
-
Save anonymous/443457 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// проверяем передали ли нам месяц и год | |
if(isset($_GET["ym"])) | |
{ | |
$year = (int)substr($_GET["ym"], 0, 4); | |
$month = (int)substr($_GET["ym"], 4, 2); | |
} | |
else // иначе выводить текущие месяц и год | |
{ | |
$month = date("m", mktime(0,0,0,date('m'),1,date('Y'))); | |
$year = date("Y", mktime(0,0,0,date('m'),1,date('Y'))); | |
} | |
$skip = date("w", mktime(0,0,0,$month,1,$year)); // узнаем номер дня недели | |
$daysInMonth = date("t", mktime(0,0,0,$month,1,$year)); // узнаем число дней в месяце | |
$calendar_head = ''; // обнуляем calendar head | |
$calendar_body = ''; // обнуляем calendar boday | |
$day = 1; // для цикла далее будем увеличивать значение | |
for($i = 0; $i < 6; $i++) // Внешний цикл для недель 6 с неполыми | |
{ | |
$calendar_body .= '<tr>'; // открываем тэг строки | |
for($j = 0; $j < 7; $j++) // Внутренний цикл для дней недели | |
{ | |
if(($skip > 0)or($day > $daysInMonth)) // выводим пустые ячейки до 1 го дня ип после полного количства дней | |
{ | |
$calendar_body .= '<td class="none"> </td>'; | |
$skip--; | |
} | |
else | |
{ | |
if($j == 0) // если воскресенье то омечаем выходной | |
$calendar_body .= '<td class="holiday">'.$day.'</td>'; | |
else { // в противном случае просто выводим день в ячейке | |
if ((date(j)==$day)&&(date(m)==$month)&&(date(Y)==$year)){//проверяем на текущий день | |
$calendar_body .= '<td class="today">'.$day.'</td>'; | |
} | |
else{ | |
$calendar_body .= '<td class="day">'.$day.'</td>'; | |
} | |
} | |
$day++; // увеличиваем $day | |
} | |
} // закрываем внутренний цикл | |
$calendar_body .= '</tr>'; // закрываем тэг строки | |
} // закрываем внешний цикл | |
// заголовок календаря | |
$calendar_head = ' | |
<tr> | |
<th colspan="2"><a href="?ym='.date("Ym", mktime(0,0,0,$month-1,1,$year)).'">« Пред</a></th> | |
<th colspan="3">'.date("F, Y", mktime(0,0,0,$month,1,$year)).'</th> | |
<th colspan="2"><a href="?ym='.date("Ym", mktime(0,0,0,$month+1,1,$year)).'">След »</a></th> | |
</tr> | |
<tr> | |
<th>Воскресенье</th> | |
<th>Понедельник</th> | |
<th>Вторник</th> | |
<th>Среда</th> | |
<th>Четверг</th> | |
<th>Пятница</th> | |
<th>Суббота</th> | |
</tr>'; | |
?> | |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
<html xmlns="http://www.w3.org/1999/xhtml"> | |
<head> | |
<meta http-equiv="Content-Type" content="text/html;" /> | |
<title>Calendar</title> | |
<style type="text/css"> | |
body{margin:0 auto; width:800px; padding:10px;} | |
#calendar{border:0px;} | |
#calendar tbody tr{ height:40px;} | |
#calendar td{ width:80px; border:0px; border:solid 1px #99FF99; font-size:22px; text-align:center;} | |
#calendar th{background-color:#4DDBFF; border:solid 1px #00CCFF; color:#ffffff;} | |
#calendar td.none{border:0px;} | |
#calendar td.holiday{ background-color:#FF6633; border-color:#FF531A; color:#94E4FF;} | |
.day{ background-color:#CCFFCC; color:#00B32D;} | |
#calendar td.today{background-color:#FFFF99; border-color:#FF531A;} | |
</style> | |
</head> | |
<body> | |
<!-- таблица для вывода календаря --> | |
<table id="calendar" width="710" border="1" cellspacing="0" cellpadding="5"> | |
<thead> | |
<?php echo $calendar_head; ?> | |
</thead> | |
<tbody> | |
<?php echo $calendar_body; ?> | |
</tbody> | |
</table> | |
<!-- таблица для вывода календаря --> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment