gpt4 book ai didi

javascript - 如何创建开始日期和结束日期之间的日期数组?

转载 作者:行者123 更新时间:2023-11-28 13:08:00 25 4
gpt4 key购买 nike

我想创建一个从 2014/0/1 到 2020/11/31 的日期列表(日期以 JavaScript 表示)。

这是代码

   var initialTime = new Date(2014, 0, 1); 
var endTime = new Date( 2050, 11, 31);

var arrTime = [];
arrTime.push(initialTime);

if( initialTime < endTime) {

for( var q = initialTime; q <= endTime; q.setDate(q.getDate() + 1)) {
arrTime.push(q);

}
}

document.querySelector("#Time").innerHTML = arrTime;

这就是代码返回的内容。它只是“Sun Jan 01 2051 00:00:00 GMT-0500 (EST)”的列表。我该如何纠正这个问题?

Image of the list

最佳答案

当您执行q.setTime( ... )时,您正在修改Date对象本身。您在每次迭代时将相同的对象插入数组,因此修改它会修改整个数组。

如果您只想要日期的字符串表示形式,您可以这样做:

let initialTime = new Date("2018-03-09Z08:00:00")
,endTime = new Date("2018-03-14Z08:00:00")
,arrTime = []
;
for (let q = initialTime; q <= endTime; q.setDate(q.getDate() + 1)) {
arrTime.push(q.toString());
}
console.log(arrTime);

或者,如果您想要一组实际的 Date 实例:

let initialTime = new Date("2018-03-09Z08:00:00")
,endTime = new Date("2018-03-14Z08:00:00")
,arrTime = []
,dayMillisec = 24 * 60 * 60 * 1000
;
for (let q = initialTime; q <= endTime; q = new Date(q.getTime() + dayMillisec)) {
arrTime.push(q);
}
console.log(arrTime);

关于javascript - 如何创建开始日期和结束日期之间的日期数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45067806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com