首页 > 解决方案 > 循环开始结束时间加上第二天的分钟

问题描述

我正在尝试将给定时间增加 15 分钟,直到达到结束时间。我一直在查看循环,直到它以特定的时间间隔到达结束时间,但此解决方案仅对同一天内的时间有帮助。

如果出现如下所示的情况,它将不起作用。

$startTime = '16:00';
$endTime = '02:00';

我正在寻找的输出如下:

16:00
16:15
16:30
16:45
17:00
17:15
17...
.....
01:45
02:00

假设现在是 16:13,我该如何从 16:30 开始输出?甚至更好,例如 30 分钟后,例如 16:45。

任何帮助表示赞赏。

标签: phpdatetime

解决方案


我认为下一个解决方案可以提供帮助:

<?php
// get current time and round it to next half hour
$start = (intdiv(time(),(30 * 60)) + 1) * (30*60);

// since intdiv introduced in PHP 7 in previous PHP versoins
// intval() function can be used instead
$start = (intval(time()/(30 * 60)) + 1) * (30*60);

$end   = strtotime('02:00');

// if end time less then start add one day
if ($end < $start) $end += 60 * 60 * 24;

while ($start <= $end) {

    echo date('H:i',$start) . PHP_EOL;

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

}

分享PHP代码


推荐阅读