1

我正在使用 node.js 进行开发,并且正在尝试在服务器上创建一个日期对象。

编码时:

var birthyear = 2000;
var birthmonth = 7;
var birthday = 24;
var date = new Date(birthyear, birthmonth, birthday);
console.log(date);

输出:

Thu Aug 24 2000 00:00:00 GMT+0300 (Jerusalem Daylight Time)

如您所见,我得到的是八月而不是七月。

我该如何解决这个问题?

4

4 回答 4

6

构造函数中的月份参数Date()不是从一月的 1 开始,而是从 0 开始。因此,提供月份值 7 会为您提供八个月,即八月。

来自MDN

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

于 2013-11-03T07:49:36.730 回答
1

JS 中的几个月开始,0 所以这是一个非常简单的修复

var date = new Date(birthyear, birthmonth-1, birthday); 

演示

于 2013-11-03T07:50:53.033 回答
0

JavaScript Date() 构造函数中的月份以 0 为索引,这意味着该月份7实际上是八月。使用6七月的值。

令人讨厌的是,Date对于哪些字段是 0 索引和哪些是 1 索引是相当不一致的,事实上,同一字段可以是任何一个,具体取决于上下文。当您必须使用日期时,您应该始终参考文档。

于 2013-11-03T07:49:44.317 回答
0

是的,这很奇怪,但几个月应该从

0
于 2013-11-03T07:49:46.213 回答