PHP - 添加30分钟的时间问题

时间:2015-11-28 10:41:17

标签: php datetime while-loop

我面临一个奇怪的问题,我在这里尝试做的是使用while循环在指定时间内添加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 )

1 个答案:

答案 0 :(得分:2)

原因是在strtotime('+30 minutes', $time_now_new)中你传递的不是有效的第二个参数。它应该是一个时间戳,但在你的情况下,它是一个字符串。解决此问题的最短方法是再添加一个strtotime()调用,如下所示:

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

它完全按照你期望的方式工作。