我写了一些代码,应该输出从早上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;
}
答案 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');
}