Javascript生成当前小时数的小时数[关闭]

问题描述 投票:-11回答:3

嗨,我正在尝试生成一天中每小时的数组。但是,我希望它从当前时间开始。

例如,

如果当前时间是下午2:00,则数组应该开始:

['1400', '1500', '1600', 1700', '1800', '1900', '2000', '2100', '2200', '2300']

代替

['0000', '0100', '0300', '0400', '0500', '0600', '0700', '0800', '0900', '1000', '1100', '1200', '1300', '1400', '1500', '1600', 1700', '1800', '1900', '2000', '2100', '2200', '2300']

javascript jquery arrays date
3个回答
2
投票

非常直截了当。请参阅内联评论:

var result = [];                      // Results will go here
var nowHour = new Date().getHours();  // Get current hour of the day

// Loop from current hour number to 23
for(var i = nowHour; i < 24; i++){
  result.push(i + "00");  // Put loop counter into array with "00" next to it
}

console.log(result); // show results

1
投票

你可以使用fillmapArray.Prototype,如下所示。

Array(24-new Date().getHours()).fill().map((e,i)=>i+new Date().getHours());

var currHour=new Date().getHours();
console.log(Array(24-currHour).fill().map((e,i)=>i+currHour+"00"));

0
投票

它可以在单个语句中合理有效地完成,包括在10:00之前的小时的前导零,并且通常使用具有可选回调的Array.from,例如,

console.log(
  Array.from(Array(24-new Date().getHours()),(x,i)=>('0'+(23-i)).slice(-2)+'00').reverse()
);

不幸的是,它仍然创建了2个数组,第一个是所需长度的空数组,然后用于生成具有所需值的第二个数组,因此性能不会太大。

如果有一个forEvery方法没有以相同的方式跳过不存在的属性,那么它可能只有一个数组(就像for循环一样)。

© www.soinside.com 2019 - 2024. All rights reserved.