创建 javascript 日期对象工作不正常

creating javascript Date object is not working properly

问题是什么以及如何解决?

> new Date(2022,5,31)
< Fri Jul 01 2022 00:00:00 GMT+0430 (Iran Daylight Time)
> new Date("2022-5-31")
< Tue May 31 2022 00:00:00 GMT+0430 (Iran Daylight Time)

creating Date(2022,5,31) object

月份为 0 索引,即 0 代表一月。 当您传入具有明确日期格式(如“2022-5-31”)的字符串时,月份不是 0 索引。

> new Date(2022,5,31)
                ^
              June
                   ^ 
                   31 -> 01 of the next month (Jul)
< Fri Jul 01 2022 00:00:00 GMT+0430 (Iran Daylight Time)

> new Date("2022-5-31")
                 ^
                May
                    ^
                   31 valid day
< Tue May 31 2022 00:00:00 GMT+0430 (Iran Daylight Time)

当您尝试输入 35 天时,这会变得很明确,例如:

> console.log(new Date(2022, 05, 35));
< Tue Jul 05 2022 00:00:00 GMT+0100 (British Summer Time)

在第一个示例中,一月是 0,而在第二个示例中,一月是 1

6 月只有 30 天,所以多出来的第 31 天顺延到 7 月。