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

如何用JavaScript生成以当前小时开头的当日小时数组

生成从当前小时开始的当日小时数组

嘿,这个需求我之前做项目的时候刚好碰到过,其实实现起来挺直接的,给你两种实用的实现思路,你可以根据自己的代码风格选:

方法一:直观循环法

这种写法逻辑清晰,新手也能一眼看懂:

function getHoursFromNow() {
  const now = new Date();
  const currentHour = now.getHours(); // 拿到当前小时(0-23的数字)
  const hoursList = [];

  // 从当前小时循环到23点
  for (let hour = currentHour; hour <= 23; hour++) {
    // 把小时转成两位字符串,再拼上00变成四位格式
    const formattedHour = hour.toString().padStart(2, '0') + '00';
    hoursList.push(formattedHour);
  }

  return hoursList;
}

// 调用示例
console.log(getHoursFromNow());
// 如果现在是下午2点(14点),输出就是 ['1400', '1500', ..., '2300']

关键点说明:

  • new Date().getHours():获取当前的小时数,范围是0(午夜)到23(深夜11点)
  • padStart(2, '0'):一定要用这个方法补零!不然早上5点就会变成'500',不符合你要的四位格式
  • 循环从当前小时开始,一直到23点结束,把每个格式化好的字符串塞进数组就行

方法二:简洁函数式写法

如果喜欢更紧凑的代码,用Array.from可以一行搞定核心逻辑:

function getHoursFromNow() {
  const currentHour = new Date().getHours();
  // 计算剩余小时数:23 - 当前小时 + 1 = 24 - 当前小时
  return Array.from({ length: 24 - currentHour }, (_, idx) => {
    const targetHour = currentHour + idx;
    return targetHour.toString().padStart(2, '0') + '00';
  });
}

// 调用示例
console.log(getHoursFromNow());

关键点说明:

  • Array.from({ length: 24 - currentHour }):先创建一个长度等于“剩余小时数”的空数组
  • 第二个参数是映射函数,每个位置对应的小时是当前小时 + 索引,然后同样格式化四位字符串

两种方法都能完美满足你的需求,要是当前时间刚好是23点,数组就只会返回['2300'],这也是符合逻辑的~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 09:05:25