You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP生成从当前时间到午夜的15分钟整间隔时间序列问题

搞定15分钟整间隔时间生成的问题

嘿,我明白你遇到的麻烦了——你的代码输出11:28am、11:43am这类非整15分钟的时间,核心原因是起始时间没有对齐到15分钟的整点。比如当前时间是11:28,直接从这个点开始加15分钟,结果肯定是错位的。

要解决这个问题,我们只需要先把起始时间调整到当前时间之后的第一个15分钟整点,之后再按15分钟的间隔递增到午夜就行。

下面是修正后的代码:

// 获取当前时间的时间戳
$currentTime = strtotime(date("d-m-Y h:i:s"));
// 计算需要加多少分钟才能到达下一个15分钟整点
// 原理:用当前时间距离当天0点的秒数,除以900秒(15分钟)取余,算出离下一个整点差多少秒,再转成分钟
$remainingSeconds = $currentTime % (15 * 60);
$minutesToAdd = (15 - ($remainingSeconds / 60)) % 15;
$start = strtotime("+{$minutesToAdd} minutes", $currentTime);

// 设置结束时间为当天午夜
$end = strtotime('midnight');

$range = array();
while ($start <= $end) {
    echo date('h:ia', $start) . "<br/>";
    $start = strtotime('+15 minutes', $start);
}

关键逻辑说明:

  • $currentTime % (15 * 60):算出当前时间距离最近的15分钟整点还差多少秒
  • (15 - ($remainingSeconds / 60)) % 15:把秒数转成分钟,计算需要加多少分钟才能对齐到15分钟整点;用%15是为了避免当前已经是整点时,错误地加15分钟
  • 调整后的$start就是第一个符合要求的15分钟整点,之后每次加15分钟,就能得到所有你想要的时间点了

这样修改后,你就能得到像11:30am、11:45am、12:00pm这类符合要求的时间,一直到当天午夜。

内容的提问来源于stack exchange,提问作者usertest

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 04:20:41