我面临一个奇怪的问题,我在这里尝试做的是使用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 )
答案 0 :(得分:2)
原因是在strtotime('+30 minutes', $time_now_new)
中你传递的不是有效的第二个参数。它应该是一个时间戳,但在你的情况下,它是一个字符串。解决此问题的最短方法是再添加一个strtotime()
调用,如下所示:
$time_now_new = date("H:i", strtotime('+30 minutes', strtotime($time_now_new)));
它完全按照你期望的方式工作。