在指定时间间隔内循环直到到达结束时间 [英] loop over the time till it reaches end time with specific interval

查看:71
本文介绍了在指定时间间隔内循环直到到达结束时间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试获取具有指定时间间隔(时间间隔为2小时,即120分钟)的一天中的所有时间段

I'm trying to get all the time slots in a day with specified time interval (time interval is 2 hours i'e 120 minutes) like this

<?php

$start=strtotime('08:00');
$end=strtotime('18:00');

for ($i=$start + $k; $i<=$end - 1; $i = $i + 120*60) {
    echo date('g:i A',$i) . " - " . date('g:i A',$i  + 120*60 ) . '<br>';
}

?>

上面的代码输出

8:00 AM - 10:00 AM
10:00 AM - 12:00 PM
12:00 PM - 2:00 PM
2:00 PM - 4:00 PM
4:00 PM - 6:00 PM

我正在尝试获得类似于

8:00 AM - 10:00 AM
9:00 AM - 11:00 PM
10:00 AM - 12:00 PM
11:00 AM - 01:00 PM
12:00 PM - 02:00 PM
01:00 PM - 03:00 PM
02:00 PM - 04:00 PM
03:00 PM - 05:00 PM
04:00 PM - 06:00 PM

时间不应超过下午6点,对于PHP来说我还是很陌生,可以有人帮助我吗,谢谢

The time should not exceed 6 PM, I'm pretty new to PHP, can someone please help me on this, thanks

推荐答案

尝试使用 while 循环,因为这样可以简化可读代码.

Try using a while loop, as it makes for easier readble code.

$start = strtotime('08:00');
$end   = strtotime('18:00');

while ($start <= $end) {

    // Set dates to display
    $date1 = $start;        
    $date2 = $start + (120*60);

    echo date('g:i A',$date1) . " - " . date('g:i A',$date2) . '<br>';

    // Increment Start date
    $start += (60*60);

}


// 8:00 AM - 10:00 AM
// 9:00 AM - 11:00 AM
// 10:00 AM - 12:00 PM
// 11:00 AM - 1:00 PM
// 12:00 PM - 2:00 PM
// 1:00 PM - 3:00 PM
// 2:00 PM - 4:00 PM
// 3:00 PM - 5:00 PM
// 4:00 PM - 6:00 PM
// 5:00 PM - 7:00 PM
// 6:00 PM - 8:00 PM

这篇关于在指定时间间隔内循环直到到达结束时间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆