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

Форум PHP

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

 

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

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

тема: Нужно вычислить даты, переданные php, от и до. И занести их в массив.
 
 автор: AlexDIXI   (31.03.2009 в 14:20)   письмо автору
 
 

Например, приняли две даты 2009-02-25 и 2009-03-15
нужно как то вычислить все даты включая передыне и внести в массив. Результат должен быть таким:


2009-02-25
2009-02-26
2009-02-27
2009-02-28
2009-03-1
2009-02-2
....
..
..
2009-03-15

  Ответить  
 
 автор: _deniska_   (31.03.2009 в 15:16)   письмо автору
 
   для: AlexDIXI   (31.03.2009 в 14:20)
 

Тоже не давно столкнулся с такой же задачей, решил так:
перевел начальную и конечную дату в timestamp потом в цикле с начальной даты до конечной прибавлял сутки в timestamp(86400), и на каждой итерации строил дату из timestamp в нужном виде. ну а как в массив занести думаю сами знаете

  Ответить  
 
 автор: AlexDIXI   (31.03.2009 в 17:27)   письмо автору
 
   для: _deniska_   (31.03.2009 в 15:16)
 

да я так же сейчас думал сделать. Только с strtotime().

  Ответить  
 
 автор: AlexDIXI   (31.03.2009 в 20:02)   письмо автору
 
   для: _deniska_   (31.03.2009 в 15:16)
 

Вот так я реализовал свою задачу :) Ждал помощи, ждал, но не дождался, сел и решил задачу сам...


<?php 

echo "<pre>";

$dateot "2009-02-25";
$datedo "2009-03-15";

$dateall[] = $datedo;

for(
$i=0$i 1$i++){

$new date("Y-m-d"strtotime($datedo) - 1*86400);

$dateall[] = $new;

if(
$dateot != $new){ $i $i 1; }

$datedo $new;

}

print_r($dateall);


?>

  Ответить  
 
 автор: Trianon   (31.03.2009 в 20:50)   письмо автору
 
   для: AlexDIXI   (31.03.2009 в 20:02)
 

Запутано, однако...
<?
$dateot 
"2009-02-25"$datedo "2009-03-15";

$dateall = array();
for(
$d strtotime($dateot), $to strtotime($datedo);
      
$d <= $to;
         
$d strtotime("+ 1 day"$d))
  
$dateall[] = date('Y-m-d'$d);

echo 
"<pre>"print_r($dateall);  

  Ответить  
 
 автор: AlexDIXI   (31.03.2009 в 21:21)   письмо автору
 
   для: Trianon   (31.03.2009 в 20:50)
 

Супер вот я этого ждал..

Естественно а не запутано )

  Ответить  
 
 автор: AlexDIXI   (01.04.2009 в 00:39)   письмо автору
 
   для: Trianon   (31.03.2009 в 20:50)
 

А мне нужно было в обратном порядке, вот так:


<?php
$dateot 
"2009-02-25"$datedo "2009-02-31"


for(
$d strtotime($dateot), $to strtotime($datedo); $d <= $to$to strtotime("- 1 day"$to)){

$dateall[] = date('Y-m-d'$to); 
  
}

echo 
"<pre>"print_r($dateall);  
?>

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

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