Квартиры, дома, земельные участки Краснодарского края без посредников. Объявления собственников недвижимости.
Реклама здесь
Главная
Примеры PHP Примеры JavaScript Примеры Ajax Примеры CSS,HTML

Календарь на текущий месяц

Пример формирует календарь на текущий месяц на PHP

Пн Вт Ср Чт Пт Сб Вс
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            


<?php
// Функция формирует двумерный массив, представляющий собой
// календарь на указанный месяц и год. Массив состоит из строк,
// соответствующих неделям. Каждая строка - массив из семи 
// элементов, которые равны числам (или пустой строке, если
// данная клетка календаря пуста).
function makeCal($year$month) {
  
// Получаем номер дня недели для 1 числа месяца. Корректируем 
  // его, чтобы воскресенье соответствовало числу 7, а не числу 0.
  
$wday JDDayOfWeek(GregorianToJD($month1$year), 0);
  if (
$wday == 0$wday 7;
  
// Начинаем с этого числа в месяце (если меньше нуля 
  // или больше длины месяца, тогда в календаре будет пропуск).
  
$n = - ($wday 2);
  
$cal = array();
  
// Цикл по строкам.
  
for ($y=0$y<6$y++) {
    
// Будущая строка. Вначале пуста.
    
$row = array();
    
$notEmpty false;
    
// Цикл внутри строки по дням недели.
    
for ($x=0$x<7$x++, $n++) {
      
// Текущее число >0 и < длины месяца?
      
if (checkdate($month$n$year)) {
        
// Да. Заполняем клетку.
        
$row[] = $n;
        
$notEmpty true;
      } else {
        
// Нет. Клетка пуста.
        
$row[] = "";
      }
    }
    
// Если в данной строке нет ни одного непустого элемента,
    // значит, месяц кончился.
    
if (!$notEmpty) break;
    
// Добавляем строку в массив.
    
$cal[] = $row;
  }
  return 
$cal;
}

// Формируем календарь на текущий месяц.
$now getdate();
$cal makeCal($now['year'], $now['mon']-1);
?>
<!-- Шаблон вывода календаря. -->
<table border=1>
  <tr>
    <td>Пн</td>
    <td>Вт</td>
    <td>Ср</td>
    <td>Чт</td>
    <td>Пт</td>
    <td>Сб</td>
    <td style="color:red">Вс</td>
  </tr>
  <!-- цикл по строкам -->
  <?foreach ($cal as $row) {?>
    <tr>
      <!-- цикл по столбам -->
      <?foreach ($row as $i=>$v) {?>
        <!-- воскресенье - "красный" день -->
        <td style="color:red">
          <?=$v$v "&nbsp;"?>
        </td>
      <?}?>
    </tr>
  <?}?>
</table>
?>
Скопировать в буфер
телекоммуникационные услуги

© Copyright 2008-2012 by KDG