我需要显示从特定小时到特定小时的小时。
假设我需要从03-Jul-2021 07:00
到04-Jul-2021 07:00
的小时数。
var date = new Date;
var hour = date.getHours();
var getHour = []
for( var i=7; i<hour; i++ ) {
getHour.push(i+":00");
}
console.log(getHour);
我该怎么做呢?
所以结果应该是:
07:00
08:00
09:00
10:00
11:00
12:00
13:00
14:00
15:00
16:00
17:00
18:00
19:00
20:00
21:00
22:00
23:00
00:00
01:00
02:00
03:00
04:00
05:00
06:00
07:00
你知道怎么做吗?
有一种方法
- 它不硬编码循环中的时间
- 填充小时
缺失:处理夏令时切换。我们可以使用。gettimezoneoffset(),如果我们想要有一个列表,它有正确的DST时间
const anHour = 60*60*1000;
const getTimes = (start, end) => {
const hours = [];
for (let i = start, n = end.getTime(); i.getTime() <= n; i.setTime(i.getTime()+anHour)) hours.push(`${String(i.getHours()).padStart(2,"0")}:00`);
return hours;
};
let startDate = new Date(2021, 6, 3, 7, 0, 0, 0);
let endDate = new Date(2021, 6, 4, 7, 0, 0, 0);
console.log(getTimes(startDate, endDate));
// If you do not need to specify dates and times, then have a static array of
const times = ["07:00", "08:00", "09:00", "10:00", "11:00", "12:00", "13:00", "14:00", "15:00", "16:00", "17:00", "18:00", "19:00", "20:00", "21:00", "22:00", "23:00", "00:00", "01:00", "02:00", "03:00", "04:00", "05:00", "06:00", "07:00" ];
处理DST需要像
如何检查DST(日光节约时间)是否有效,如果是,偏移量?
如果我理解了你的问题,应该是这样的
var date = new Date;
var hour = date.getHours();
var getHour = []
for (var i = 0; i < 25; i++) {
getHour.push((hour + i) % 24 + ":00");
}
console.log(getHour); // 8:00, 9:00, ... 8:00