| |
|
|
| | Всем доброго времени суток!
Помогите найти ошибку (при работе скрипта, выводит что сегодня суббота 6 число!):
<?php
$daysinmonth=date("t"); //Число дней в месяце
$weeks=$daysinmonth/7; //Число недель в месяце
$weeks=round($weeks,0); //Округляем полученый результат
$dayofweek=date("w"); // День недели 0 - воскресение, 6 - суббота
$dayofmonth=date("j"); // День месяца без нуля
$dayofmonthlz=date("d"); // День месяца с ведущим нулем
$monthlz=date("n"); // Номер месяца без нуля
$monthdays=date("t"); // Колличество дней в месяце
$daysarray=array("Понефторник","Пн","Вт","Ср","Чт","Пт","Сб","Вс");//Массив дней недели
$month = array("1"=>"Январь",
"2"=>"Февраль","3"=>"Март","4"=>"Апрель",
"5"=>"Май", "6"=>"Июнь", "7"=>"Июль",
"8"=>"Август","9"=>"Сентябрь",
"10"=>"Октябрь","11"=>"Ноябрь",
"12"=>"Декабрь");// Массив месяцев
$months=array("мартабрь","января",
"февраля","марта","апреля","мая","июня",
"июля","августа","сентября","октября",
"ноября","декабря");//Массив месяцев
$numberfirstday = date("w",mktime(0,0,0,date("m"),1,date("Y"))); // Вычисляем каким будет первый день месяца по счету в неделе.
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Календарь</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
<?
echo "<table width=\"200\" border=\"0\" cellspacing=\"0\" cellpadding=\"5\">\n\t<tr>\n";
// Для начала выводим дни недели
for ($i = 1; $i <= 7; $i++) {
if($i>5){
echo "\t\t<td><font color=\"#E4723A\">".$daysarray[$i]."</font></td>\n";
}else{
echo "\t\t<td>".$daysarray[$i]."</td>\n";
}
}
echo "\t</tr>\n\t<tr>\n";
// Выводим пустые дни предыдущего месяца.
$j = 1;
while ($j < $numberfirstday) {
echo "\t\t<td> </td>\n";
$j++;
}
//Теперь выводим ВСЕ дни месяца.
for ($i = 1; $i <= $monthdays; $i++) {
if($i==$dayofmonth){
# echo "\t\t<td><a href=\"news/".date("Y")."/".date("m")."/".$i."/\"><b>".$i."</b></a></td>\n";
echo "\t\t<td bgcolor=\"#FF8040\" align=\"center\"><b>".$i."</b></td>\n"; // подсвечиваем сегоднящний день
}else{
# echo "\t\t<td><a href=\"news/".date("Y")."/".date("m")."/".$i."/\">".$i."</a></td>\n";
echo "\t\t<td align=\"center\">".$i."</td>\n";
}
//Новая неделя
if (round($j/7)-$j/7==0){
echo "\t</tr>\n\t<tr>\n";
}
$j++;
}
echo "\t</tr>\n</table>\n";
?>
|
| |
| |
|
|
| |
|
|
| |
для: Front
(06.04.2007 в 11:35)
| | | Не в доваясь в код:)
А может неправельная дата на сервере(локалхосте)? | |
| |
|
|
| |
|
|
| |
для: hin
(06.04.2007 в 11:42)
| | | Нет на сервере хостера тоже самое, ошибка где то в скрипте!! | |
| |
|
|
| |
|
|
| |
для: Front
(06.04.2007 в 11:35)
| | | У вас не смещается дата... ведь первый день месяца не всегда начинается с понедельника. Возможно вас заинтересует скрипт по ссылке http://www.softtime.ru/scripts/calendar.php. | |
| |
|
|
| |
|
|
| |
для: cheops
(06.04.2007 в 12:31)
| | | Подскажите как сместить дату, мне именно этот скрипт нужен, с подсветкой даты! | |
| |
|
|
| |
|
|
| |
для: Front
(06.04.2007 в 12:49)
| | | Исходя из статьи можно вот так:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Календарь</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>
<body>
<?php
// Вычисляем число дней в текущем месяце
$dayofmonth = date('t');
// Счётчик для дней месяца
$day_count = 1;
$daysarray=array("Понефторник","Пн","Вт","Ср","Чт","Пт","Сб","Вс");//Массив дней недели
$month = array("1"=>"Январь",
"2"=>"Февраль","3"=>"Март","4"=>"Апрель",
"5"=>"Май", "6"=>"Июнь", "7"=>"Июль",
"8"=>"Август","9"=>"Сентябрь",
"10"=>"Октябрь","11"=>"Ноябрь",
"12"=>"Декабрь");// Массив месяцев
$months=array("мартабрь","января",
"февраля","марта","апреля","мая","июня",
"июля","августа","сентября","октября",
"ноября","декабря");//Массив месяцев
// 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;
}
// 3. Выводим содержимое массива $week
// в виде календаря
// Выводим таблицу
echo "<table bgcolor=\"#000000\" width=\"200\" border=\"0\" cellspacing=\"1\" cellpadding=\"3\">\n\t<tr bgcolor=#cccccc align=\"center\">\n";
for ($i = 1; $i <= 7; $i++) {
if($i>5){
echo "\t\t<td><font color=\"#E4723A\">".$daysarray[$i]."</font></td>\n";
}else{
echo "\t\t<td>".$daysarray[$i]."</td>\n";
}
}
echo "\t</tr>\n\t";
for($i = 0; $i < count($week); $i++)
{
echo "<tr bgcolor=#ffffff align=\"center\">";
for($j = 0; $j < 7; $j++)
{
if(!empty($week[$i][$j]))
{
// Если имеем дело с субботой и воскресенья
// подсвечиваем их
if($j == 5 || $j == 6) {
echo "<td><font color=\"#E4723A\">".$week[$i][$j]."</font></td>";
} else {
if ($week[$i][$j] == date("j")) {
echo "<td bgcolor=\"#FF8040\" align=\"center\">".$week[$i][$j]."</td>";
} else {
echo "<td>".$week[$i][$j]."</td>";
}
}
}
else echo "<td> </td>";
}
echo "</tr>";
}
echo "</table>";
?>
</body>
</html>
|
| |
| |
|
|
|