2015-11-28 49 views
1

我面臨一個奇怪的問題,我在這裏要做的是使用while循環將30分鐘添加到多個迭代的指定時間。下面是我正在嘗試的代碼,不確定它出錯的地方。PHP - 在添加30分鐘到時間的問題

我的代碼

function session_slot_compare(){ 
$min_count = 3; 
$time_now = '1:30'; 
$time_now_new = date('H:i', strtotime($time_now)); 
$duration_bits[0] = $time_now_new; 
$i=0; 
while($i<$min_count){ 
    $time_now_new = date("H:i", strtotime('+30 minutes', $time_now_new)); 
    $duration_bits[$i] = $time_now_new; 
    $i++; 
} 
print_r($duration_bits);} 

期望輸出

我其實期待輸出到像Array ([0] => 01:30 [1] => 02:00 [2] => 02:30)

實際輸出

但我得到的輸出爲Array ([0] => 01:30 [1] => 00:30 [2] => 00:30)

回答

2

原因是在strtotime('+30 minutes', $time_now_new)中傳遞的不是有效的第2個參數。它應該是一個時間戳,但在你的情況下,它是一個字符串。解決該問題的捷徑就是多加一個strtotime()調用,如下所示:

$time_now_new = date("H:i", strtotime('+30 minutes', strtotime($time_now_new))); 

它會在你期望的方式工作完全。

+0

非常感謝,它現在有效。 – krishna89