2016-12-05 2 views
8

Я пытаюсь создать новый date в javascript.javascript создать дату от года, месяц, день

У меня есть year, month и day. После this учебника, синтаксис для создания нового date должно быть:

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

, и это именно то, что я делаю:

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

Это должно быть 17 декабря 2016, но в моей консоли вывода я вижу:

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

Что я делаю неправильно?

+2

Месяцы начинаются с 0. Вы должны использовать это: var d = new Дата (2016, 11, 17); – Antonio

+1

В Javascript Date Object, месяцы основаны на 0. Таким образом, 0 означает, что 11 января означает декабрь. try 'var d = new Дата (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); 
Смежные вопросы