2016-12-05 148 views
8

我正在尝试在javascript中创建新的datejavascript从年,月,日创建日期

我有yearmonthday。继this教程,语法创建新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) 

我在做什么错?

+2

月开始从0 您应该使用这个: var d = new Date(2016,11,17); – Antonio

+1

在Javascript日期对象中,月份为0。所以0意味着1月,11意味着12月。 尝试 '变种d =新日期(2016年,11,17,0,0,0,0);'它应该罚款。 –

回答

8

根据MDN - Date

月代表月份,以0开头的 月至11月为

整数值。

您应该从一个月减1。

12

一月是月月0个月是11 所以这应该工作:

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

此外,你可以简单地做:

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