如何在2d数组中返回2个日期时间之间的每分钟


how to return every minute between 2 datetime in 2d array

我可以在2d数组中获得每分钟的日期时间吗?我是php开发人员的初学者。希望有人能告诉我或分享任何想法。

假设我的输入为:

$startdate = 2013/7/01;
$enddate = 2013/7/02;

我怎么能有的功能

getMinuteRange($startdate, $enddate );

我需要函数的输出为:

Array (   
[0] => Array
    (
        [0] => 01/7/2013
        [1] => 12.00 a.m
    )
[1] => Array
    (
        [0] => 01/7/2013
        [1] => 12.01 a.m
    )
[2] => Array
    (
        [0] => 01/7/2013
        [1] => 12.03 a.m
    )
.
.
.
[2879] => Array
    (
        [0] => 02/7/2013
        [1] => 11.59 p.m
    )

)

$begin = new DateTime('2013/07/01');
$end = new DateTime('2013/07/02');
$interval = new DateInterval('PT1M');//1 minute
$periods = new DatePeriod($begin, $interval, $end, DatePeriod::EXCLUDE_START_DATE);
$arr = iterator_to_array($periods);
print_r($arr);

这将为您提供一个DateTime对象数组。您可以使用dateTime->format()按照自己的喜好格式化时间字符串。

这应该适用于您。。。它获取开始和结束时间戳的时间戳,并从一个时间戳走到另一个,增量为60秒。

$startTime = "2013/07/01";
$endTime = "2013/07/02";
$startTS = strtotime($startTime);
$endTS = strtotime("tomorrow", strtotime($endTime));
$results = array();    
for($x = $startTS; $x<$endTS; $x+=60){ 
     $results[] = array(date("d/m/Y", $x), date("h.i a", $x));
}
if ($x != $endTS){
     $results[] = array(date("d/m/Y", $endTS), date("h.i a", $endTS));
}
print_r($results);