Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Календарь с праздничными данными и переносами праздников
 
 автор: Vincento   (10.03.2011 в 22:43)   письмо автору
 
 

Добрый день!

есть ли скрипт календаря рабочих дней? ну или виджет который на подобе Гисметео будет отображать календарь по ссылке? Благодарю заранее за ответ!

  Ответить  
 
 автор: cheops   (11.03.2011 в 00:09)   письмо автору
 
   для: Vincento   (10.03.2011 в 22:43)
 

Хм... скрипт по ссылке по подойдет?

http://softtime.ru/scripts/calendar.php

  Ответить  
 
 автор: Vincento   (11.03.2011 в 07:25)   письмо автору
 
   для: cheops   (11.03.2011 в 00:09)
 

нет.

Скрипт хороший очень, но на нем не отображаются праздничные дни. А суть такая, что хочу чтобы на сайте отображался календарь с праздниками, переносами раочих дней и.т.д. , и чтобы администратору не приходилось каждый год все это менять... хотя судя по моим поискам такого пока нет....

  Ответить  
 
 автор: AlexSol   (11.03.2011 в 08:40)   письмо автору
 
   для: Vincento   (11.03.2011 в 07:25)
 

календарь в гуглдокс

  Ответить  
 
 автор: cheops   (11.03.2011 в 11:34)   письмо автору
 
   для: Vincento   (11.03.2011 в 07:25)
 

Хм... так переносы каждый год правительством утверждаются по-разному, заранее такой календарь на несколько лет вперед не составишь, нужно массив вводить, который администратору придется пополнять каждый год. Или нужно сервис искать, где это сделает чужой администратор и который такие данные в приемлемом формате предоставит, что их не сложно будет загрузить.

  Ответить  
 
 автор: Vincento   (11.03.2011 в 19:01)   письмо автору
 
   для: cheops   (11.03.2011 в 11:34)
 

Да я вот такой именно и хочу найти, чтобы на оф сайте это делали и давали возможность в каком-нить формате брать эти данные. хотя вручную на год тоже думаю минут за 15 можно сделать!

  Ответить  
 
 автор: cheops   (11.03.2011 в 19:32)   письмо автору
 
   для: Vincento   (11.03.2011 в 19:01)
 

Ну на 2011 год держите, а как будет в 2012 году я пока не знаю, собственно дело не хитрое, можно и самостоятельно скрипт поправить или попытаться угадать переносы на следующий год, у них достаточно четкие правила, особено, когда нет заморочек с переносом майских праздников на январские.
<?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;
  }
  
// Исключения на 2011 год - праздники и переносы
  // Январь
  
$date[1][1] = 1;
  
$date[1][2] = 1;
  
$date[1][3] = 1;
  
$date[1][4] = 1;
  
$date[1][5] = 1;
  
$date[1][6] = 1;
  
$date[1][7] = 1;
  
$date[1][10] = 1;
  
// Февраль
  
$date[2][23] = 1;
  
// Март
  
$date[3][8] = 1;
  
// Май
  
$date[5][2] = 1;
  
$date[5][9] = 1;
  
// Июнь
  
$date[6][13] = 1;
  
// Ноябрь
  
$date[11][4] = 1;


  
// 3. Выводим содержимое массива $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 == || ($date[date('n')][$week[$i][$j]])) 
             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>";
?>

  Ответить  
 
 автор: IAG   (15.10.2011 в 21:16)
 
   для: cheops   (11.03.2011 в 19:32)
 

помогите плиз, где нужно добавить "+3" что бы текущая дата сдвигалась на три дня вперед и в календаре выводилось не сегодняшнее число а на три дня вперед???
заранее благодарю.
Алексей.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования