创建 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 月。
问题是什么以及如何解决?
> 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 月。