Przejdź do głównej zawartości

W przykładzie z błędem, poprawność działania kodu częściowo zależy od dnia, w którym zostanie uruchomiony.

new Date() generuje aktualną datę w lokalnej strefie czasowej.

Polska leży w strefie czasowej +1h (czas zimowy) lub +2h (czas letni) w stosunku do strefy UTC.

Metoda toISOString() zwraca datę w formacie UTC. Jeśli więc kod zostanie uruchomiony np. o godz. 00:30 w polskiej stefie czasowej, to toISOString() zwróci w odpowiedzi datę z dnia poprzedniego polskiej strefy czasowej.

Pozostałe metody występują w dwóch wariantach.

Pierwsze, bez UTC w nazwie metody, zwracają datę czasu lokalnego (tego, w którym został uruchomiony kod). Drugie, z UTC w nazwie metody, zwracają datę ze strefy czasowej UTC.

Przykładowo, wariant getDate() zwróci dzień miesiąca czasu lokalnego, a wariant getUTCDate() dzień miesiąca czasu UTC.

Metoda getDate() nie sprawia niespodzianek, zwracając dzień miesiąca w formie liczbowej (w przedziale od 1 do 31).

Metoda getMonth() jest już nieco mniej intuicyjna. Zwraca bowiem numer miesiąca, ale numeracja miesięcy zaczyna się od 0.

Styczeń to 0, grudzień to 11.

Jeśli chcemy przypisać nazwy miesięcy do wartości z zakresu od 1 do 12, to wywołując getMonth() musimy pamiętać, aby zawsze dodawać do zwracanej wartości +1.

Metoda getDay() zwraca numer dnia tygodnia w zakresie liczbowym od 0 do 6. Dodatkowo musimy jednak pamiętać, że numerowanie dni tygodnia zaczyna się od niedzieli (0), a kończy na sobocie (6).