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

Php 循环时间,直到达到特定间隔的结束时间,php,datetime,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>'; } ?&

我试着用指定的时间间隔(时间间隔为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
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非常陌生,请有人在这方面帮助我,谢谢

尝试使用
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
$start=strottime('08:00');
$end=strottime('18:00');

虽然($start使用Carbon/DateTime和CarbonInterval/DateTimeInterval。谢谢你提供的信息,但是有没有不使用CarbonInterval/DateTimeInterval的方法?是的,但是你到底为什么不呢?@Amelia,因为这是一个简单的循环,不需要太复杂。另外,因为OP对PHP来说是“非常新的”,只是在寻找一些关于它们的帮助r循环结构…@MaggsWeb“那个简单的循环”减少为1行,带有日期时间间隔。是的,现在它更可读,谢谢,但是上面的输出是一样的,你能帮我得到我想要的准确结果吗?非常感谢
$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