Вернуться   Дизайнерский форум » ВЕБ-ПРОГРАММИРОВАНИЕ » ASP, Perl, PHP и MySQL

Date('t') -- подскажите

Обсуждение темы Date('t') -- подскажите в разделе ASP, Perl, PHP и MySQL, часть категории ВЕБ-ПРОГРАММИРОВАНИЕ; Люди, помогите. делаю календарь на 12 месяцев через цикл сделал все хорошобы но функция date('t') -- не дает покоя она выбирает кол-во дней ...


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

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

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

Спасибо всем кто откликнется!
 
Старый 03.08.2006, 13:33
Ссылки
Старый 03.08.2006, 13:48   #2
Вот есть у меня готовый календарь http://xsd.ru/cal.txt
 
Старый 03.08.2006, 13:54   #3
Спасибо, но это немного не то.
Мне надо, чтоб полотном все 12 месяцев выводились.
Вот такого календаря в скриптах я не видел нигде
 
Старый 03.08.2006, 16:02   #4
Выложи свой код куда нибудь и мы посмотрим.
А вообще надо смотреть не скрипты а самому писать.
 
Старый 03.08.2006, 16:11   #5
Что-ж тут удивительного? date('t') без второго параметра будет выдавать количество дней в текущием месяце. Укажите второй параметр.
 
Старый 03.08.2006, 16:21   #6
deMone, про какой именно параметр ты говоришь?

тут все вроде указано иль я ошибаюсь?
PHP код:
$dayofmonth date('t',mktime(000$month1date('Y')));
// $month -- месяц 
 
Старый 03.08.2006, 19:53   #7
Леха, цикл свой покажи
 
Старый 04.08.2006, 00:49   #8
Это странице это выплывает календарь, т.е. цикл:

PHP код:
<?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 код:
<?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></td>";
    }
    echo 
"</tr>";
  } 
  echo 
"</table>";
?>
 
Старый 04.08.2006, 01:57   #9
Я ща ложусь спать поэтому код переписовать не буду.
1) Цикл сделай с массивом а не if оми
 
Старый 04.08.2006, 09:11   #10
Цикла у тебя там нет. Но это так, к слову.

Проблема в том, что у тебя массив $week не обнуляется. После прохода января он остается заполненным до конца. Обрати внимание на то, что сейчас он у тебя выводит неправильный календарь (вот, например, февраль: 25, 26, 27, 28, 25, 26, 27). Чтобы избавиться от этого, напиши вначале файла, который подключается (функции делать не умеем?):

$week=array();
 
Старый 04.08.2006, 09:11
Закрытая тема




Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите что не так! Ekspressionist Зал дебютантов 7 06.07.2012 04:45
Подскажите Псарь Софтодром 2 27.07.2007 19:25
Подскажите SEF Графические работы 2 14.12.2006 08:56
подскажите sl_play Растровая графика 4 07.03.2006 22:24
Подскажите noX Растровая графика 2 11.05.2005 03:40


Текущее время: 20:58. Часовой пояс GMT +4.

Реклама на форуме Условия размещения рекламы
Биржа ссылок Заработай на сайте!
Дизайнерский форум