为什么 JavaScript 从我的日期构造函数返回错误的月份?

问题描述 投票:0回答:4

使用 Mozilla Firefox Firebug:

var myDate = new Date(2012, 9, 23, 0,0,0,0);
myDate;

日期 {2012 年 10 月 23 日星期二 00:00:00 GMT-0400(东部夏令时间)}

为什么 JavaScript 创建的日期与我声明的月份错误?应该是九月,而不是十月。

javascript
4个回答
108
投票

不,javascript 的

Date
月份以
0
开头,所以
9
是第 10 个月,现在是 10 月

参考

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

[...]

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


9
投票

在 javascript 世界中,月份是从零开始的! 对我来说有点奇怪。 不管怎样,9 不是 9 月,而是 9 是 10 月。


3
投票

使用字符串作为参数以避免 Date 构造函数的奇怪行为。

示例:

const myDate = new Date('2021-08-13'); // Result: Fri Aug 13 2021 02:00:00 GMT+0200...


-1
投票

在 javascript 中,日期对象挂载是从( 0 到 11 )开始的,这很有趣:)

总是写

new Date(yea,month - 1,seconds ,millisecond)
© www.soinside.com 2019 - 2024. All rights reserved.