JavaScript Date()表现得很奇怪,任何想法出了什么问题?

时间:2013-12-19 23:22:10

标签: javascript date time

我一直在尝试解析几个日期,但由于某种原因,他们会继续滚动到下个月 - 当时他们不应该这样做。

以此方案为例:

In January there are 31 days.

那么为什么会发生这种情况:

var myDate = new Date(2013, 01, 31);
myDate.toDateString(); // output: "Sun Mar 03 2013"

我错过了Date(year, month, day)构造函数的内容吗?

1 个答案:

答案 0 :(得分:4)

在JavaScript的Date构造函数中,1月是0月,2月是1,... 12月是11。

为什么?

通常引用的原因是人们可以通过数组查找轻松将月份数转换回月份名称:

var months = [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ];

然后'January' === months[0]

然后问题就会记住哪些语言遵循哪些约定:)