gpt4 book ai didi

javascript - 为什么日期没有正确生成?

转载 作者:行者123 更新时间:2023-12-01 01:13:24 26 4
gpt4 key购买 nike

我正在使用 Angular JS 中的一个函数来生成从今天开始的过去一周的日期。我将这些日期存储在一个数组中,然后使用该数组来填充下拉列表。以下是我正在使用的代码。

generate() {
this.date_new = [];
var date = new Date();
var date1 = new Date();
for (var i = 0; i < 7; i++) {
date.setDate(date1.getDate() - i);
var a = date.toString();
var str = this.convert(a);
this.date_new.push(str);
}
}

这里的convert是一个函数,用于将日期转换为所需的格式。下面附有生成日期的屏幕截图。

The generated dates

从屏幕截图中可以看出,最后两个日期不正确。有人可以向我解释一下问题是什么吗?

最佳答案

The setDate() method sets the day of the Date object relative to the beginning of the currently set month.

以上来自MDN

您的代码适用于前 5 个日期,但是一旦您使用 -1 修改二月日期,它就会设置相对于当前月份的日期,例如二月。因此,这将变成一月(因为您将日期设置为 -1),下一次迭代中也会发生同样的情况,您将得到十二月。

要轻松修复,您只需在 for 循环的第一行中将 date 变量设置为 new Date() 即可。

关于javascript - 为什么日期没有正确生成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54977369/

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