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

Форум PHP

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

 

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

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

тема: DATE -- надоело бороться
 
 автор: !!!Леха   (03.08.2006 в 13:27)   письмо автору
 
 

Люди, помогите.
делаю календарь на 12 месяцев через цикл
сделал
все хорошобы
но функция date('t') -- не дает покоя
она выбирает кол-во дней текущего месяца
и как бы я не старался -- все равно пихает 31 день

Сделал попытку $dayofmonth = date('t',mktime(0, 0, 0, $month, 1, date('Y')));
$month -- месяц, который цикл подставляет
Если проверить echo $dayofmonth; то выводит все хорошо, кол-во месяцев соотвествует действительности.

Но, если выводить -- 12 месяцев (одним полотном) -- дык...хрень полная ... кол-во дней в месяце у всех одинаковое, к примеру 31

Спасибо всем кто откликнется!

   
 
 автор: vovik_sumy   (03.08.2006 в 13:36)   письмо автору
 
   для: !!!Леха   (03.08.2006 в 13:27)
 

Подозреваю что переменная $month не изменяет значение.
Просто выведи её после каждого вызова date.
А вообще-то код бы показал.. Точнее бы ответили.

   
 
 автор: !!!Леха   (03.08.2006 в 13:41)   письмо автору
 
   для: 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(000$hahaha1date('Y')));
  
// Счётчик для дней месяца
  
$day_count 1;
  
// 1. Первая неделя
  
$num 0;
  for(
$i 0$i 7$i++)
  {
    
// Вычисляем номер дня недели для числа
    
$dayofweek date('w',
                      
mktime(000$hahaha$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>";
?>

   
 
 автор: !!!Леха   (03.08.2006 в 16:26)   письмо автору
 
   для: !!!Леха   (03.08.2006 в 13:27)
 

никто не знает? :((( буду плакать

   
 
 автор: cheops   (03.08.2006 в 21:10)   письмо автору
 
   для: !!!Леха   (03.08.2006 в 13:27)
 

Странно не должно быть такого... не может переменная $month принимать одно и тоже значение?

   
 
 автор: tuder   (04.08.2006 в 06:58)   письмо автору
 
   для: cheops   (03.08.2006 в 21:10)
 

Ай-яй-яй. :-)

Конец файла deletecal2.php:

unset($week);
?>


Количество элементов массива-то сохраняется от января...

   
 
 автор: !!!Леха   (04.08.2006 в 11:11)   письмо автору
 
   для: tuder   (04.08.2006 в 06:58)
 

Спасибо. Тема закрыта!

   
Rambler's Top100
вверх

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