PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Без описания
Поиск в теме | Версия для печати
rafonets
Отправлено: 12 Октября, 2011 - 20:12:04
Новичок
Покинул форум
Сообщений всего: 47
Дата рег-ции: Март 2011
Помог: 0 раз(а)
PHP:
скопировать код в буфер обмена
<?PHP
// проверяем передали ли нам месяц и год
$year = ( int
) substr ( $_GET [ "ym" ] , 0
, 4
) ; $month = ( int
) substr ( $_GET [ "ym" ] , 4
, 2
) ;
}
else { // иначе выводить текущие месяц и год
}
$skip = date ( "w" , mktime ( 0
, 0
, 0
, $month , 1
, $year ) ) - 1 ; // узнаем номер дня недели if ( $skip < 0) {
$skip = 6 ;
}
$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>' ;
?>
Я думаю здесь уже нечего объяснять комментариев кажется достаточно.
-------------
Далее осталось написать HTML код и вывести в нужных местах $calendar_head и $calendar_body, ну и прописать CSS стили. Рассмотрим содержание тега <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>
<!-- таблица для вывода календаря -->
(Отредактировано автором: 12 Октября, 2011 - 20:13:36)
Поиск в теме | Версия для печати
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Напишите за меня, пожалуйста »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB