0

这是我在 chrome 控制台中看到的:

> new Date(2012, 9, 13).toString()
"Sat Oct 13 2012 00:00:00 GMT+0800 (CST)"
> new Date(2012, 9, 13).getMonth()
9

显然应该是Thu Sep..我错过了什么?

4

4 回答 4

3

month形式为~ 011索引

表示月份的整数值,从 0 开始表示一月到 11 表示十二月。

于 2012-09-14T02:24:02.683 回答
0

不要问我为什么,但是 Date 构造函数被指定为 Jan = 0, ... Dec = 11。您实际上是在创建一个 10 月的日期,并且它正在正确打印出来。

请参阅https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date

于 2012-09-14T02:24:21.717 回答
0

来自Date 的 MDN 文档

month

表示月份的整数值,从 0 开始表示一月到 11 表示十二月。

于 2012-09-14T02:24:40.270 回答
0

Date 对象的 ECMAScript规范指出月份是从 0 开始索引的(很像 Java 中的),因此9表示十月:

15.9.1.4 月数

月份值 0 指定一月;1 指定二月;2 指定三月;3 指定四月;4 指定五月;5 指定六月;6 指定七月;7 指定八月;8 指定九月;9 指定十月;10 指定 11 月;11 指定 12 月。请注意,MonthFromTime(0) = 0,对应于 1970 年 1 月 1 日星期四。

于 2012-09-14T02:27:16.113 回答