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

JavaScript使用for循环生成00:00~24:00每3分钟间隔时间列表

需求说明

需要生成范围为00:00 ~ 24:00、间隔3分钟的格式化时间字符串数组,最终效果形如["00:00", "00:03", "00:06", ..., "24:00"]。
原有实现仅能生成整点时间项,代码如下:

let arr = []
for (let i = 0; i < 25; i++) {
  let j = 19
  let str = i.toString()
  arr[j*i] = str.padStart(2, '0') + ':00'
}
console.log('arr', arr)

该实现未覆盖00:03~00:57这类间隔3分钟的非整点时间,且通过固定偏移量给数组指定索引赋值的方式容易产生稀疏数组,逻辑冗余。

实现方案

不需要单独区分整点、非整点逻辑,直接以「总分钟数」为遍历维度,步长设为3分钟逐次生成时间字符串即可,逻辑更简洁不易出错。
完整可运行代码:

const timeList = []
// 从0分钟(00:00)开始遍历,每次递增3分钟,直到1440分钟(24:00)终止
for (let totalMinutes = 0; totalMinutes <= 24 * 60; totalMinutes += 3) {
  // 换算当前小时、分钟值
  const currentHour = Math.floor(totalMinutes / 60)
  const currentMinute = totalMinutes % 60
  // 补前导零后拼接为标准时间格式
  const formatTime = `${currentHour.toString().padStart(2, '0')}:${currentMinute.toString().padStart(2, '0')}`
  timeList.push(formatTime)
}

console.log(timeList)
逻辑说明
  • 遍历步长固定为3分钟,自动覆盖所有整点、3分、6分……57分的时间节点,不需要单独写插入非整点项的逻辑
  • 小时值通过总分钟数除以60取整计算,分钟值通过总分钟数对60取余计算,换算逻辑无遗漏
  • 循环终止条件设为<= 1440(24*60=1440分钟),可以完整包含最后一个24:00节点
  • 最终生成的数组共481项,不存在空索引,可直接使用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 12:21:23