Javascript 创建年、月、日的日期

我试图在 javascript中创建一个新的 date

我有 yearmonthday。按照 这个教程,创建新的 date的语法应该是:

new Date(year, month, day, hours, minutes, seconds, milliseconds)

这正是我正在做的:

var d = new Date(2016, 12, 17, 0, 0, 0, 0);

这应该是2016年12月17日,但在我的控制台输出中,我看到:

Tue Jan 17 2017 00:00:00 GMT+0100 (Central Europe Standard Time)

我做错了什么?

111432 次浏览

根据 MDN-日期:

表示月份的整数值,以0开头 一月至十二月十一日。

你应该从你的月份中减去1:

const d = new Date(2016, 11, 17, 0, 0, 0, 0);

一月是零月,十二月是十一月。 因此,这应该会奏效:

var d = new Date(2016, 11, 17, 0, 0, 0, 0);

此外,你可以简单地这样做:

var d = new Date(2016, 11, 17);