Все даты между двумя датами с интервалом 30 минут - PullRequest
1 голос
/ 22 декабря 2011

у меня есть $ one = '2011-12-22 07:00 и $ two =' 2011-12-22 11:30 ';

Я хотел бы получить все данные с интервалом 30 минут. Для этого примера должно быть:

2011-12-22 07:00
2011-12-22 07:30
2011-12-22 08:00
2011-12-22 08:30
2011-12-22 09:00
2011-12-22 09:30
2011-12-22 10:00
2011-12-22 10:30
2011-12-22 11:00
2011-12-22 11:30

Возможно ли это с помощью цикла FOR?

Ответы [ 3 ]

5 голосов
/ 22 декабря 2011

Примерно так должно работать:

$dates = array();
$start = new DateTime($one);
$until = new DateTime($two);

while($start->getTimestamp() <= $until->getTimestamp()) {

   $dates[] = clone $start;
   $start->add(new DateInterval("PT30M"));
}

echo '<pre>';
print_r($dates);
3 голосов
/ 22 декабря 2011

Вы можете сделать это так:

<?php
$interval = 1800; // Interval in seconds

$date_first     = "2011-12-22 07:00";
$date_second    = "2011-12-22 11:30";

$time_first     = strtotime($date_first);
$time_second    = strtotime($date_second);

for ($i = $time_first; $i < $time_second; $i += $interval)
    echo date('Y-m-d H:i', $i) . "<br />";
?>
2 голосов
/ 22 декабря 2011

Посмотрите, как вы идете с этим ..

$one = strtotime('2011-12-22 07:00');
$two = strtotime('2011-12-22 11:30');

while($two>$one){
    $interval_timestamp = $one += 60*30;
    echo date('r',$interval_timestamp);//output as needed.
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...