javascript正在创建错误月份的日期

Joe*_*ahl 52 javascript

使用Mozilla Firefox Firebug:

var myDate = new Date(2012, 9, 23, 0,0,0,0);
myDate;
Run Code Online (Sandbox Code Playgroud)

日期{Tue Oct 23 2012 00:00:00 GMT-0400(东部夏令时)}

为什么javascript用错误的月份创建日期?

zer*_*kms 81

不,javascript的Date月份开始0,9第10个月也是10月份

参考:

new Date(year, month [, day, hour, minute, second, millisecond]);

[...]

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

  • 只有真正的知识分子才能理解。显然我不是其中之一,因为这对我来说是多么轻微的触发 (4认同)
  • 我认为值得一提的是,月份不仅在JavaScript中,而且几乎在所有地方都是零基础.这遵循C的"<time.h>"的传统.C中用于索引数组的所有字段都是从零开始的,即使人类可读的形式是基于一的.每当在其他地方创建类似的API时,大多数API都遵循该约定,如Java或JavaScript. (2认同)

Joe*_*ahl 8

在javascript世界中,零开始!对我来说有点奇怪.无论如何,9不是9月,而是9月是10月.

  • 对我来说有点奇怪.AAAAAAAAAAAAAAAAAAAAAAAAAA!WTF!谢啦!!!! (2认同)
  • 你知道我会回答“但是几天和几年呢?为什么它们不是从零开始的?” 但后来我意识到;实际上,它们是两种完全不同的数据类型,月份是专有名称、字符串,月份中的天数和年份只是数字、整数。所以这并不奇怪,当你想到它时,它实际上有点道理。 (2认同)
  • @MarkCarpenterJr 不,我认为这是一个从零开始的月份的残酷决定。每个理智的人都认为 9 月 11 日是 9 月 11 日,除了贾戈夫决定在代码中任意将其改为 8 月 11 日。年已经是从零开始的,但天不是,所以同样的决定应该适用于天。 (2认同)