为什么1月0日在Javascript日期对象中,而年,日,小时......开始为1?

yad*_*taf 9 javascript date

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

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

test_date = New Date(2013, 2, 8);
Run Code Online (Sandbox Code Playgroud)

这背后有什么理性吗?

Nie*_*sol 8

因为那时你可以:

var monthnames = ["Jan","Feb","Mar"....];
Run Code Online (Sandbox Code Playgroud)

并通过以下方式访问阵列:

monthnames[myDate.getMonths()]
Run Code Online (Sandbox Code Playgroud)

同样在工作日,周日为0.

然而,年和日只是数值,而不是更大含义的指数.

侧注:小时,分钟和秒也是"人类时间"的零基础.

  • 对不起,但月份是数值很好。一月是第 1 个月,十二月是第 12 个月。与星期几相同。星期一是 1,星期二是 2,依此类推,星期日可以是 0 或 7,具体取决于星期日是开始还是结束。 (2认同)