|
|
|
| Добрый день!
есть ли скрипт календаря рабочих дней? ну или виджет который на подобе Гисметео будет отображать календарь по ссылке? Благодарю заранее за ответ! | |
|
|
|
|
|
|
|
для: Vincento
(10.03.2011 в 22:43)
| | Хм... скрипт по ссылке по подойдет?
http://softtime.ru/scripts/calendar.php | |
|
|
|
|
|
|
|
для: cheops
(11.03.2011 в 00:09)
| | нет.
Скрипт хороший очень, но на нем не отображаются праздничные дни. А суть такая, что хочу чтобы на сайте отображался календарь с праздниками, переносами раочих дней и.т.д. , и чтобы администратору не приходилось каждый год все это менять... хотя судя по моим поискам такого пока нет.... | |
|
|
|
|
|
|
|
для: Vincento
(11.03.2011 в 07:25)
| | календарь в гуглдокс | |
|
|
|
|
|
|
|
для: Vincento
(11.03.2011 в 07:25)
| | Хм... так переносы каждый год правительством утверждаются по-разному, заранее такой календарь на несколько лет вперед не составишь, нужно массив вводить, который администратору придется пополнять каждый год. Или нужно сервис искать, где это сделает чужой администратор и который такие данные в приемлемом формате предоставит, что их не сложно будет загрузить. | |
|
|
|
|
|
|
|
для: cheops
(11.03.2011 в 11:34)
| | Да я вот такой именно и хочу найти, чтобы на оф сайте это делали и давали возможность в каком-нить формате брать эти данные. хотя вручную на год тоже думаю минут за 15 можно сделать! | |
|
|
|
|
|
|
|
для: 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(0, 0, 0, date('m'), $day_count, date('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 == 5 || $j == 6 || ($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> </td>";
}
echo "</tr>";
}
echo "</table>";
?>
|
| |
|
|
|
|
автор: IAG (15.10.2011 в 21:16) |
|
|
для: cheops
(11.03.2011 в 19:32)
| | помогите плиз, где нужно добавить "+3" что бы текущая дата сдвигалась на три дня вперед и в календаре выводилось не сегодняшнее число а на три дня вперед???
заранее благодарю.
Алексей. | |
|
|
|