为什么javascript日期-月份索引是基于0的

为什么javascript日期-月份索引是基于0的,javascript,date,Javascript,Date,我曾经读过很多解释,解释为什么这是在当时创建的(年指数和日指数都是而不是以0为基础)。这些解释都没有真正意义 更让我惊讶的是:即使在最新的ECMAScript 2018草案中,这个问题仍然存在。 Javascript可能很久以前就从Java中获取了这一点,但我不明白为什么它没有被更改,除非有一个合理的理由 谢谢和问候, 马塞尔 为什么javascript日期-月份索引是基于0的 这并不奇怪。星期几也是以0为基础的。在这两种情况下,通常都希望在数组中查找它们的符号版本(例如,[“一月”、“二月”

我曾经读过很多解释,解释为什么这是在当时创建的(年指数和日指数都是而不是以0为基础)。这些解释都没有真正意义

更让我惊讶的是:即使在最新的ECMAScript 2018草案中,这个问题仍然存在。

Javascript可能很久以前就从Java中获取了这一点,但我不明白为什么它没有被更改,除非有一个合理的理由

谢谢和问候, 马塞尔

为什么javascript日期-月份索引是基于0的

这并不奇怪。星期几也是以0为基础的。在这两种情况下,通常都希望在数组中查找它们的符号版本(例如,
[“一月”、“二月”、…]
[“星期日”、“星期一”、…]
)。数组是基于0的。到目前为止,JavaScript并不是唯一使用基于0的值进行此操作的语言/运行时

更让我惊讶的是:即使在最新的ECMAScript 2018草案中,这个问题仍然存在

如果他们在22年后改变了这一点,炸毁了数百万个脚本,尤其是因为它是完全理性的,那将是更令人惊讶的。他们可以添加一个新的访问器,为您执行
+1
,但是……是的,我不会屏住呼吸。:-)


基于1的版本的唯一原因是格式化。格式化根本不由JavaScript处理。ECMA-402中有一些格式:,形式为。

Q:您是否庆祝了新千年,2000年1月1日。。。或者2001年1月1日?
除非有正当理由,否则为什么不更改它。
dude只是假设更改这个“小”细节就像在编辑器中打开文件,找到行,退格,退格,保存,完成。不容易从副本中理解:TL;DR:因为月份和工作日都有名称,而月份的日期则没有。@Pauls4:我两者都有。:-)嘿…派对!一周中的几天也和几年一样为零索引(星期日=0)。所以零索引月是有意义的。因为在它之前的祖先是Java和C,在它之前的祖先是ASM,所以22年是不够的;)@mplungjan::-)