2013-07-23 42 views
1

我可以在2d數組中獲取日期時間嗎?我是初學者php developer.hope sme可以告訴或分享任何想法。php - 如何在2d數組中的2個日期時間之間返回每分鐘

讓說我的輸入爲:

$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 

    ) 

+0

看看這是否有幫助:http://stackoverflow.com/questions/676824/how-to-calculate-the-difference-between-two-dates-using-php – Maximus2012

回答

2

這應該適合你...它獲取開始和結束時間戳的時間戳,並從一個時間戳到另一個時間戳,遞增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); 
+0

是的,它的工作和真棒!謝謝@Orangepill – zira

+0

我剛剛注意到這些代碼將給出日期,直到2013年1月7日下午12時59分我可以調整代碼,所以如果我選擇在2013年1月7日開始並結束2013年7月7日, 2013年2月7日下午12時9分意味着2880分鐘(2天時間)。 – zira

+1

更改'$ endTS = strtotime($ endTime);''回顯日期(「Ymd」,strtotime(「明天」,strtotime($ endTime)));' – Orangepill

3
$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()來格式化你喜歡的時間字符串。

+0

注意此代碼僅在phpversion> = 5.3.0時有效 – srain

相關問題