You need to enable JavaScript to run this app. 如何使用moment.js遍历日期列表生成从零点开始的小时级时间范围
优惠活动
大模型
产品
解决方案
定价
更多

如何使用moment.js遍历日期列表生成从零点开始的小时级时间范围

实现方案

完全可以通过遍历all数组结合moment.js的时间操作能力生成符合要求的range格式序列,具体实现思路和代码如下:

核心实现思路

  • 遍历all数组中的每个日期字符串,先将其转换为moment可识别的时间对象
  • 对每个时间对象,取其对应日期的UTC零点作为生成序列的起始时间
  • 以该时间对象本身的小时数作为序列的结束边界,包含结束时间对应的整点
  • 从起始时间开始,逐次加1小时,每次生成对应格式的时间字符串存入结果数组
  • 所有日期的序列拼接后即为目标range数组

注意事项

  • 如果你的原始日期字符串是本地时区格式,需要先通过moment.utc()方法统一转成UTC时间处理,避免时区偏差导致的日期错误
  • 输出格式严格匹配示例中的YYYY-MM-DDTHH:mm:ss.SSSZ即可

代码示例

// node环境下需先执行npm install moment引入依赖
const moment = require('moment');

const all = ['2021-04-26T08:00:00', '2021-04-27T10:00:00'];
const generatedRange = [];

all.forEach(dateStr => {
  // 转成UTC时间对象避免时区误差
  const targetTime = moment.utc(dateStr);
  // 取当日零点作为序列起始
  let current = targetTime.clone().startOf('day');
  // 取目标时间的小时数作为结束边界
  const endHour = targetTime.hour();
  
  while(current.hour() <= endHour) {
    generatedRange.push(current.format('YYYY-MM-DDTHH:mm:ss.SSSZ'));
    current.add(1, 'hour');
  }
})

// 输出结果和你示例中的range结构完全一致
console.log(generatedRange);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 03:27:04