php - 循环开始结束时间加上第二天的分钟
问题描述
我正在尝试将给定时间增加 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。
任何帮助表示赞赏。
解决方案
我认为下一个解决方案可以提供帮助:
<?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);
}
推荐阅读
- reactjs - 为什么导入的钩子给出错误已经被声明
- javascript - 三星 Internet 浏览器 - 使用 window.history.replaceState() 时从未触发“beforeinstallprompt”事件
- python - Numpy Vectorize,查找包含元素的子数组的索引
- python - 不能让硒找到元素
- rust - 当使用 tokio::time::timeout 来确定是否已经过了太多时间时程序挂起
- python - Centos python shebang 不适用于 3.6
- python - 使用递归和缓存的最长递增子序列
- python - Plotly 表达 choropleth 箱
- javascript - 嵌套在填充中的过滤器
- reactjs - 如何根据交替模式有条件地渲染?