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

Форум PHP

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

 

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

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

тема: перебор даты в цикле
 
 автор: garold   (22.04.2010 в 10:09)   письмо автору
 
 

Необходимо перебрать дату в цикле по дням с заданным диапазоном.
Например
<?
$a = "2010.02.04";
$b = "2010.04.15";

// здесь в цикле нужно вывести все диапазоны начиная с $a и заканчивая $b (включая $a и $b)
?>

  Ответить  
 
 автор: Valick   (22.04.2010 в 10:22)   письмо автору
 
   для: garold   (22.04.2010 в 10:09)
 

Начните с рассказа о том как возникла такая необходимость, да и вообще, что Вы хотите сделать, а то если честно, совершенно непонятно о чем речь.

  Ответить  
 
 автор: garold   (22.04.2010 в 10:45)   письмо автору
 
   для: Valick   (22.04.2010 в 10:22)
 

Нужно сгенерировать бланк заполнения, и там указывается период например с 01.01.2010 по 31.02.2010

тоесть мне нужно вывести в таком виде все даты входящие в этот диапазон

  Ответить  
 
 автор: oliss   (22.04.2010 в 11:18)   письмо автору
 
   для: garold   (22.04.2010 в 10:09)
 

может проще сразу из бд выбрать этот интервал?

  Ответить  
 
 автор: garold   (22.04.2010 в 11:21)   письмо автору
 
   для: oliss   (22.04.2010 в 11:18)
 

во-первых БД тут непричем. Еее нету в данном случае. Мне нужно просто сгенерировать пустой бланк для заполнения.
во-вторых в БД могут просто не присутствовать некоторые записи в выбранном диапазоне и тогда все пиши пропало.

  Ответить  
 
 автор: garold   (22.04.2010 в 11:22)   письмо автору
 
   для: garold   (22.04.2010 в 11:21)
 

чтобы стало яснее
<?
$a 
"2010.02.04";
$b "2010.04.15";
 
// здесь в цикле нужно вывести все диапазоны начиная с $a и заканчивая $b (включая $a и $b)
// тоесть 2010.02.04, 2010.02.05,2010.02.06 .... 2010.04.15
?>

  Ответить  
 
 автор: Valick   (22.04.2010 в 11:21)   письмо автору
 
   для: oliss   (22.04.2010 в 11:18)
 

я так понял человеку нужен бланк который в последствии будут заполнять шариковой ручкой на листе бумаги, в любом случае нужен календарь

  Ответить  
 
 автор: garold   (22.04.2010 в 11:22)   письмо автору
 
   для: Valick   (22.04.2010 в 11:21)
 

Да, все верно поняли.

  Ответить  
 
 автор: garold   (22.04.2010 в 11:25)   письмо автору
 
   для: Valick   (22.04.2010 в 11:21)
 

эх, на C# это сделать 3-4 строчками кода

  Ответить  
 
 автор: garold   (22.04.2010 в 11:27)   письмо автору
 
   для: Valick   (22.04.2010 в 11:21)
 

Зачем тут календарь? Я что-то не понял. У меня в мыслях сделать это в цикле for, допустим используя специальную функция (если не ошибаюсь strtotime), и в цикле прибавлять по дню пока не достигнут конец диапазаона

  Ответить  
 
 автор: garold   (22.04.2010 в 11:30)   письмо автору
 
   для: garold   (22.04.2010 в 11:27)
 

типо вот так

<?
$a
=mktime(0,0,0,2,4,2010);
$b=mktime(1,0,0,4,15,2010);
while (
$a<=$b)
{
  echo 
date('Y.m.d',$a)."<br />\r\n";
  
$a+=86400;
}
?>

  Ответить  
 
 автор: Trianon   (22.04.2010 в 12:13)   письмо автору
 
   для: garold   (22.04.2010 в 11:30)
 

только не +86400
+ 1 day
$a = strtotime('+ 1 day', $a);

  Ответить  
 
 автор: garold   (22.04.2010 в 12:21)   письмо автору
 
   для: Trianon   (22.04.2010 в 12:13)
 

а какая разница?

  Ответить  
 
 автор: Trianon   (22.04.2010 в 13:12)   письмо автору
 
   для: garold   (22.04.2010 в 12:21)
 

Разница проявляется на переходах со стандартного времени на летнее и обратно.
(в такие дни в сутках случается 23 и 25 часов соответственно.)
Особенно, когда время суток близко к точке перехода.
Почему и советуют выбирать базовое время не полуночью (0,0,0,2,4,2010) , а полуднем (12,0,0,2,4,2010).

  Ответить  
Rambler's Top100
вверх

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