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

时间:2014-12-17 12:52:48

标签: javascript date datetime

我确实在' 31/12/208'中创建了一个日期对象:

new Date('2018', '12', '31')
然而,它会产生一些与我期望完全不同的东西。

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

发生了什么?

3 个答案:

答案 0 :(得分:3)

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

new Date(2018, 11, 31)

(是的,应该有数字而不是字符串,这使它更容易混淆)

来自the MDN

  

<强>月

     

表示月份的整数值,从0开始   12月1月到11日。

答案 1 :(得分:1)

JavaScript在JavaScript中以0开头。一月是0;十二月是1112代表次年1月。您希望使用11代替12

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

答案 2 :(得分:1)

你已经忘记了JS中的几个月开始于 0 而不是1。

请使用

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

在你的情况下。