10

可能重复:
从零开始的月份编号

为什么 JS 日期对象中的 1 月为 0 月?例如,我希望此代码段为 2013 年 2 月 8 日创建一个日期项目。相反,它是 3 月。所有其他领域都是直观的。年份和月份和时间一样自然。

test_date = New Date(2013, 2, 8);

这背后有什么道理吗?

4

2 回答 2

8

因为那样你就可以拥有:

var monthnames = ["Jan","Feb","Mar"....];

并通过以下方式访问数组:

monthnames[myDate.getMonths()]

同样适用于工作日,其中星期日为 0。

但是,年和日只是数值,而不是更大意义的索引。

旁注:小时、分钟和秒在“人类时间”中也是从零开始的。

于 2013-01-09T19:16:07.090 回答
0

只有 12 个月,而可以有无数年。所以我认为使用十二个数组来存储月份值会更有效。

于 2013-01-09T19:16:30.817 回答