需要帮助以1小时为增量显示时间列表

时间:2014-08-25 00:58:44

标签: php date datetime

我写了一些代码,应该输出从早上6点到晚上23:45的时间列表。

我正在使用DateTime类来完成此任务。我遇到的问题是,while循环是一个无限的while循环。它并没有停止。

我很难理解当条件设置为此时它为什么不停止.. \ while ($formatted_start_time <= $end_hour){

无论如何,如果有人可以帮助我,我会非常感激。非常感谢。

以下是我到目前为止的代码..

 $start_hour = new DateTime("now",new DateTimeZone("America/New_York"));
 $start_hour->setTime(6,00);
 $formatted_start_time = $start_hour->format("H:i:s");


    $end_hour = mktime(23,45);

 while ($formatted_start_time <= $end_hour){
    $start_hour->modify("+60 minutes");
    $formatted_start_time = $start_hour->format("H:i:s");
     echo $formatted_start_time;

 }

1 个答案:

答案 0 :(得分:2)

使用DateInterval()DatePeriod()

,这很简单,易读
$start_hour = new DateTime('06:00', new DateTimeZone("America/New_York"));
// Add one minute as the loop is NOT inclusive
$end_hour   = new DateTime('23:46', new DateTimeZone("America/New_York"));
$interval   = new DateInterval('PT15M');
$period     = new DatePeriod($start_hour, $interval, $end_hour);
foreach ($period as $time) {
    echo $time->format('H:i:s');
}

Demo