我面临一个奇怪的问题,我在这里想要做的是使用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 )
原因是在strtotime('+30 minutes', $time_now_new)
您传递的不是有效的第二个参数。它应该是一个时间戳,但在您的情况下,它是一个字符串。解决该问题的最短方法是再添加一个strtotime()
呼叫,如下所示:
$time_now_new = date("H:i", strtotime('+30 minutes', strtotime($time_now_new)));
它将完全按照您期望的方式工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句