Sep
18
2010
Календарь на php

Скрипт предназначен для отображения календаря на текущий месяц

Календарь в американском формате




  <?php

  
// Вычисляем число дней в текущем месяце

  
$dayofmonth date('t');

  
// Счётчик для дней месяца

  
$day_count 1;



  
// 1. Первая неделя

  
$num 0;

  for(
$i 0$i 7$i++)

  {

    
// Вычисляем номер дня недели для числа

    
$dayofweek date('w',

                      
mktime(000date('m'), $day_countdate('Y')));

    
// Приводим к числа к формату 1 - понедельник, ..., 6 - суббота

    
$dayofweek $dayofweek 1;

    if(
$dayofweek == -1$dayofweek 6;



    if(
$dayofweek == $i)

    {

      
// Если дни недели совпадают,

      // заполняем массив $week

      // числами месяца

      
$week[$num][$i] = $day_count;

      
$day_count++;

    }

    else

    {

      
$week[$num][$i] = "";

    }

  }



  
// 2. Последующие недели месяца

  
while(true)

  {

    
$num++;

    for(
$i 0$i 7$i++)

    {

      
$week[$num][$i] = $day_count;

      
$day_count++;

      
// Если достигли конца месяца - выходим

      // из цикла

      
if($day_count $dayofmonth) break;

    }

    
// Если достигли конца месяца - выходим

    // из цикла

    
if($day_count $dayofmonth) break;

  }



  
// 3. Выводим содержимое массива $week

  // в виде календаря

  // Выводим таблицу

  
echo "<table border=1>";

  for(
$i 0$i count($week); $i++)

  {

    echo 
"<tr>";

    for(
$j 0$j 7$j++)

    {

      if(!empty(
$week[$i][$j]))

      {

        
// Если имеем дело с субботой и воскресенья

        // подсвечиваем их

        
if($j == || $j == 6

             echo 
"<td><font color=red>".$week[$i][$j]."</font></td>";

        else echo 
"<td>".$week[$i][$j]."</td>";

      }

      else echo 
"<td>&nbsp;</td>";

    }

    echo 
"</tr>";

  } 

  echo 
"</table>";

?>


Результат работы скрипт представлен ниже

  12345
6789101112
13141516171819
20212223242526
27282930   

Для того чтобы вывести календарь в российком формате, необходимо изменить только блок вывода 3

Календарь в российком формате


<?php

  
...

  
// Выводим содержимое массива $week

  // в виде календаря

  // Выводим таблицу

  
echo "<table border=1>";

  for(
$j 0$j 7$j++)

  {

    echo 
"<tr>";

    for(
$i 0$i count($week); $i++)

    {

      if(!empty(
$week[$i][$j]))

      {

        
// Если имеем дело с субботой и воскресенья

        // подсвечиваем их

        
if($j == || $j == 6

             echo 
"<td><font color=red>".$week[$i][$j]."</font></td>";

        else echo 
"<td>".$week[$i][$j]."</td>";

      }

      else echo 
"<td>&nbsp;</td>";

    }

    echo 
"</tr>";

  } 

  echo 
"</table>";

?>


Результат работы скрипт представлен ниже

 6132027
 7142128
18152229
29162330
3101724 
4111825 
5121926 

Для того чтобы вывести календарь на произвольный месяц, достаточно передать в качестве второго параметра функции date() любую дату месяца в виде числа секунд, прошедших с полуночи 1 января 1970 года.

 

Комментарии
Добавить новый Поиск
Оставить комментарий
Имя:
Email:
 
Веб-сайт:
Тема:
UBB-Код:
[b] [i] [u] [url] [quote] [code] [img] 
 
 
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch:
:(:shock::X:side::):P:unsure::woohoo::huh::whistle:;):s
:!::?::idea::arrow:
 
Пожалуйста, введите проверочный код, который Вы видите на картинке.
Powered by !JoomlaComment 3.26

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

 

Кто онлайн

Сейчас 51 гостей онлайн