Имеем две переменные:
$from = '2011-10-02 13:00';
$to - '2011-11-05 05:00';
Нужна функция на выходе которой будет массив с интервалом от $from до $to.
$result = array('2011-10-02 13:00','2011-10-02 14:00','2011-10-02 15:00', ... , '2011-11-05 05:00');
Мозгую мозгую, и ничего в голову толкового не приходит...
Спустя 11 минут, 19 секунд (3.10.2011 - 16:07) neadekvat написал(а):
Я правильно понял, что нужно собрать все промежуточные точки времени с разницей в час?
Что-то такое получилось:
Что-то такое получилось:
function get_intervals($from, $to)
{
$from_t = strtotime($from);
$to_t = strtotime($to);
$interval = 60 * 60; // интервал - 1 час
$cur_time = $from_t;
$intervals[] = $from;
while($cur_time != $to_t)
{
$cur_time += $interval;
$intervals[] = date('Y-m-d H:i', $cur_time);
}
return $intervals;
}
$from = '2011-10-02 13:00';
$to = '2011-11-05 05:00';
print_r(get_intervals($from, $to));
Спустя 38 минут, 53 секунды (3.10.2011 - 16:46) linker написал(а):
Как вариант
function get_intervals($from, $to)
{
$arr = range(strtotime($from), strtotime($to), 3600);
array_walk($arr, create_function('&$val, $idx', '$val = date("Y-m-d H:i", $val);'));
return $arr;
}