2012-09-03 25 views
31

sử dụng Mozilla Firefox Firebug:javascript đang tạo ra những sai ngày tháng

var myDate = new Date(2012, 9, 23, 0,0,0,0); 
myDate; 

ngày {Tue 23 Tháng Mười 2012 00:00:00 GMT-0400 (Đông Ánh sáng ban ngày Time)}

Tại sao javascript tạo ngày tháng sai?

+4

Số tháng JavaScript không được lập chỉ mục ... * tìm liên kết song song *. – Matt

+1

@Matt: cho tôi vài phút để thu thập một số điểm đại diện ;-) – zerkms

+0

Eugh, tôi không thể tin rằng tôi không thể tìm thấy. Google đang thất bại với tôi. – Matt

Trả lời

54

Không, javascript của Date tháng bắt đầu với 0, vì vậy 9 là tháng thứ 10 và nó là tháng mười

Reference:

new Date(year, month [, day, hour, minute, second, millisecond]);

[...]

tháng Số nguyên giá trị đại diện cho tháng, bắt đầu bằng 0 từ tháng 1 đến tháng 11 cho tháng 12.

+0

Điều này có đúng cho cả ngày không? Tôi tạo ra một ngày (1982, 10, 14) ... đôi khi nó mang lại cho tôi 13 Oct 1982 23:00 và đôi khi nó mang lại cho tôi 14 Oct 1982 00:00 – Shumii

+2

Tôi nghĩ rằng nó đáng nói đến trong tháng đó là không dựa trên không chỉ trong JavaScript nhưng hầu như ở khắp mọi nơi. Điều này theo truyền thống của '' từ C. Tất cả các trường trong C được sử dụng để lập chỉ mục mảng là không dựa trên ngay cả khi biểu mẫu có thể đọc được của con người sẽ là một dựa trên. Bất cứ khi nào các API tương tự sau đó được tạo ở nơi khác, hầu hết trong số chúng tuân theo quy ước đó, như Java hoặc JavaScript. –

6

Trong tháng thế giới javascript bắt đầu bằng không! loại kỳ lạ đối với tôi. Dù sao đi nữa, 9 KHÔNG phải là tháng 9, mà đúng hơn là 9 tháng 10.

+2

loại lạ với tôi. AAAAAAAAAAAAAAAAAAAAAAAAAA !! WTF !! Cảm ơn người đàn ông !!!! –

+0

Điều này không lạ. Trong thế giới lập trình, hầu hết các ngôn ngữ cung cấp các tháng trong các số nguyên dựa trên 0. –

+0

Bạn biết tôi sẽ trả lời "Nhưng những gì về ngày và năm? Tại sao họ không phải là số không?" Nhưng rồi tôi đã nhận ra; trong tất cả thực tế, chúng là 2 kiểu dữ liệu hoàn toàn khác nhau, tháng là tên, chuỗi và ngày tháng thích hợp cùng với năm chỉ là số, số nguyên. Vì vậy, nó không thực sự kỳ lạ, nó thực sự kinda có ý nghĩa khi bạn nghĩ về nó. –

Các vấn đề liên quan