循环时间,直到达到具有特定间隔的结束时间

时间:2015-10-19 08:01:22

标签: php datetime

我试图按照指定的时间间隔(时间间隔是2小时,我是120分钟)来获取所有时间段,如此

<?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的新手,有人可以帮我解决这个问题,谢谢

1 个答案:

答案 0 :(得分:0)

尝试使用while循环,因为它使更容易读取代码。

$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