2016-12-05 19 views
8

Tôi đang cố gắng tạo một date mới trong javascript.javascript tạo ngày từ năm, tháng, ngày

Tôi có year, monthday. Sau this hướng dẫn, cú pháp để tạo mới date nên là:

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

và đó là chính xác những gì tôi đang làm:

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

này nên ngày 17 tháng 12 2016, nhưng trong đầu ra giao diện điều khiển của tôi tôi thấy:

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

Tôi đang làm gì sai?

+2

tháng bắt đầu từ 0. Bạn nên sử dụng điều này: var d = new Date (2016, 11, 17); – Antonio

+1

Trong đối tượng ngày tháng Javascript, tháng là 0 dựa. Vì vậy, 0 có nghĩa là tháng một, 11 có nghĩa là tháng mười hai. thử 'var d = ngày mới (năm 2016, 11, 17, 0, 0, 0, 0); 'Sẽ ổn. –

Trả lời

8

Theo MDN - Date:

tháng

giá trị Integer đại diện tháng, bắt đầu với 0 cho tháng giêng đến 11 cho tháng mười hai.

Bạn nên trừ 1 từ tháng của mình.

12

tháng Giêng là tháng 0. tháng mười hai là tháng 11. Vì vậy, điều này sẽ làm việc:

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

Ngoài ra, bạn có thể chỉ đơn giản là làm:

var d = new Date(2016, 11, 17); 
Các vấn đề liên quan