|
|
|
| Люди, помогите.
делаю календарь на 12 месяцев через цикл
сделал
все хорошобы
но функция date('t') -- не дает покоя
она выбирает кол-во дней текущего месяца
и как бы я не старался -- все равно пихает 31 день
Сделал попытку $dayofmonth = date('t',mktime(0, 0, 0, $month, 1, date('Y')));
$month -- месяц, который цикл подставляет
Если проверить echo $dayofmonth; то выводит все хорошо, кол-во месяцев соотвествует действительности.
Но, если выводить -- 12 месяцев (одним полотном) -- дык...хрень полная ... кол-во дней в месяце у всех одинаковое, к примеру 31
Спасибо всем кто откликнется! | |
|
|
|
|
|
|
|
для: !!!Леха
(03.08.2006 в 13:27)
| | Подозреваю что переменная $month не изменяет значение.
Просто выведи её после каждого вызова date.
А вообще-то код бы показал.. Точнее бы ответили. | |
|
|
|
|
|
|
|
для: vovik_sumy
(03.08.2006 в 13:36)
| | Это странице это выплывает календарь:
<?php
for($nju="1";$nju<=3;$nju++){
$hahaha="$nju";echo "<td align=\"center\"><b>";
if($nju=="1"){echo "ЯНВАРЬ";}
if($nju=="2"){echo "ФЕВРАЛЬ";}
if($nju=="3"){echo "МАРТ";}
include("deletecal2.php");
echo"</b></td>";
}
echo "</tr><tr>";
for($nju="4";$nju<=6;$nju++){
$hahaha="$nju";echo "<td align=\"center\"><b>";
if($nju=="4"){echo "АПРЕЛЬ";}
if($nju=="5"){echo "МАЙ";}
if($nju=="6"){echo "ИЮНЬ";}
include("deletecal2.php");
echo"</b></td>";
}
echo "</tr><tr>";
for($nju="7";$nju<=9;$nju++){
$hahaha="$nju";echo "<td align=\"center\"><b>";
if($nju=="7"){echo "ИЮЛЬ";}
if($nju=="8"){echo "АВГУСТ";}
if($nju=="9"){echo "СЕНТЯБРЬ";}
include("deletecal2.php");
echo"</b></td>";
}
echo "</tr><tr>";
for($nju="10";$nju<=12;$nju++){
$hahaha="$nju";echo "<td align=\"center\"><b>";
if($nju=="10"){echo "ОКТЯБРЬ";}
if($nju=="11"){echo "НОЯБРЬ";}
if($nju=="12"){echo "ДЕКАБРЬ";}
include("deletecal2.php");
echo"</b></td>";
}
echo "</tr></table>";
?>
|
А вот файлик deletecal2.php -- помойму взял с этого сайта:
<?php
// Вычисляем число дней в текущем месяце
$dayofmonth = date('t',mktime(0, 0, 0, $hahaha, 1, date('Y')));
// Счётчик для дней месяца
$day_count = 1;
// 1. Первая неделя
$num = 0;
for($i = 0; $i < 7; $i++)
{
// Вычисляем номер дня недели для числа
$dayofweek = date('w',
mktime(0, 0, 0, $hahaha, $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 border=1>";
for($i = 0; $i < count($week); $i++)
{
echo "<tr>";
for($j = 0; $j < 7; $j++)
{
if(!empty($week[$i][$j]))
{
// Если имеем дело с субботой и воскресенья
// подсвечиваем их
if($j == 5 || $j == 6) {
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>";
?>
|
| |
|
|
|
|
|
|
|
для: !!!Леха
(03.08.2006 в 13:27)
| | никто не знает? :((( буду плакать | |
|
|
|
|
|
|
|
для: !!!Леха
(03.08.2006 в 13:27)
| | Странно не должно быть такого... не может переменная $month принимать одно и тоже значение? | |
|
|
|
|
|
|
|
для: cheops
(03.08.2006 в 21:10)
| | Ай-яй-яй. :-)
Конец файла deletecal2.php:
Количество элементов массива-то сохраняется от января... | |
|
|
|
|
|
|
|
для: tuder
(04.08.2006 в 06:58)
| | Спасибо. Тема закрыта! | |
|
|
|