2012-09-03 17 views
31

używając Mozilla Firefox FirebugJavaScript jest złą datę utworzenia miesięcy

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

Data {Wto 23 października 2012 00:00:00 GMT-0400 (Eastern Daylight Time)}

Dlaczego javascript tworzenia Data z niewłaściwym miesiącem?

+4

Miesiące JavaScript są zerowo indeksowane ... * znajduje link do dupleksu *. – Matt

+1

@Matt: daj mi kilka minut na zebranie kilku punktów rep ;-) – zerkms

+0

Eugh, nie mogę uwierzyć, że nie mogę go znaleźć. Google mnie zawodzi. – Matt

Odpowiedz

54

No, JavaScript jest Date miesięcy zacząć 0, więc 9 jest 10 miesiąca i jest to październik

Reference:

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

[...]

miesiąc Integer wartość reprezentująca miesiąc, zaczynając od 0 dla stycznia do 11 dla grudnia.

+0

Czy to prawda również w tym dniu? Stworzyłem randkę (1982, 10, 14) ... czasami daje mi to 13 października 1982 roku 23:00, a czasami daje mi 14 października 1982 00:00 – Shumii

+2

Myślę, że warto wspomnieć, że miesiąc opiera się na zerach nie tylko w JavaScript, ale prawie wszędzie. Jest to zgodne z tradycją '' z C. Wszystkie pola w C, które są używane do indeksowania tablic, są oparte na zera, nawet jeśli postać czytelna dla człowieka byłaby oparta na jednym. Ilekroć podobne API były następnie tworzone gdzie indziej, większość z nich stosuje tę konwencję, taką jak Java lub JavaScript. –

6

W świecie javascript miesiące zaczynają się od zera! trochę dziwne dla mnie. W każdym razie 9 to NIE wrzesień, ale 9 to październik.

+2

trochę dziwne dla mnie. AAAAAAAAAAAAAAAAAAAAAAAAAA !! WTF !! Dzięki!!!! –

+0

To nie jest dziwne. W świecie programowania większość języków zapewnia miesiące w liczbach całkowitych 0. –

+0

Wiesz, że zamierzałem odpowiedzieć "Ale co z dniami i latami, dlaczego nie są one oparte na zero?" Ale potem doszedłem do realizacji; we wszystkich przypadkach są to 2 zupełnie różne typy danych, miesiące to właściwe nazwy, łańcuchy i dni miesiąca wraz z latami to po prostu liczby, liczby całkowite. Więc nie jest tak naprawdę dziwne, to właściwie ma sens, kiedy o tym myślisz. –

Powiązane problemy