Javascript new Date() 返回不同的日期

Javascript new Date() returns different date

本文关键字:日期 返回 new Date Javascript      更新时间:2023-09-26

我确实从'31/12/2018'创建了一个日期对象:

new Date('2018', '12', '31')

然而,它确实创造了我所期望的完全不同的东西。

Date {Thu Jan 31 2019 00:00:00 GMT+0100 (Central European Standard Time)}

发生了什么事情?

月份从 0 开始索引。12 月使用 11,而不是12

new Date(2018, 11, 31)

(是的,应该有数字而不是字符串,这样可以减少混乱(

来自 MDN :

表示月份的整数值,以 0 开头表示 1 月至 11 月 11 日为 12 月。

在 JavaScript 中,月份以 0 开头。一月是0;十二月是11. 12代表次年的一月。您需要使用11而不是12

new Date('2018', '11', '31')
-> Mon Dec 31 2018 00:00:00 GMT+0100 (Central European Standard Time)

你已经忘记了 JS 中的月份以 0 而不是 1 开头。

请使用

new Date('2018', '11', '31')

在你的情况下。