Date
Obiekt reprezentujący konkretny moment w czasie, z metodami do odczytu i zmiany daty oraz godziny.
- Zwraca
- Nowy obiekt
Date.
Przykład
#const exam = new Date(Date.UTC(2026, 8, 28, 10, 30))
console.log(exam)
console.log(exam.getUTCFullYear(), exam.getUTCMonth(), exam.getUTCDate())
console.log(exam.getUTCDay(), exam.getUTCHours())Miesiąc 8 to wrzesień, bo miesiące liczy się od zera. Dzień tygodnia 1 oznacza poniedziałek (niedziela to 0).
Definicja i zastosowanie
#Obiekt Date przechowuje jeden punkt w czasie jako liczbę milisekund, które upłynęły od 1 stycznia 1970 roku (UTC). new Date() bez argumentów zwraca bieżący moment, a Date.now() samą liczbę milisekund, wygodną do mierzenia czasu.
Datę utworzysz z liczby milisekund, z napisu w formacie ISO ("2026-09-28T10:30:00Z") albo z osobnych składników: new Date(rok, miesiąc, dzień, godzina, minuta). Uwaga: miesiące liczone są od zera, więc styczeń to 0, a grudzień to 11.
Metody getFullYear(), getMonth(), getDate(), getDay() czy getHours() zwracają składniki w strefie czasowej użytkownika, a ich odpowiedniki z UTC w nazwie, np. getUTCHours(), w czasie uniwersalnym. Do wyświetlania dat w czytelnej, polskiej formie użyj toLocaleDateString() albo Intl.DateTimeFormat.
Obiekty Date są zmienne: metody set...() modyfikują istniejący obiekt. Różnicę między datami policzysz, odejmując je od siebie, bo wynikiem jest liczba milisekund.
Składnia
#new Date()
new Date(milliseconds)
new Date(dateString)
new Date(year, monthIndex, day, hours, minutes, seconds)
Date.now()
Date.UTC(year, monthIndex, day, hours, minutes)Parametry
#milliseconds
liczba
Liczba milisekund od 1 stycznia 1970 roku (UTC).dateString
napis
Data w formacie ISO, np."2026-09-28"albo"2026-09-28T10:30:00Z".year, monthIndex, day…
liczby
Składniki daty w lokalnej strefie czasowej.monthIndexprzyjmuje wartości od 0 (styczeń) do 11 (grudzień).
Więcej przykładów
#const start = new Date(2026, 0, 1)
const oops = new Date(2026, 1, 1)
console.log(start.getMonth(), start.getDate())
console.log(oops.toLocaleDateString('pl-PL', { month: 'long' }))const start = new Date('2026-09-01T00:00:00Z')
const end = new Date('2026-09-28T00:00:00Z')
const days = (end - start) / (1000 * 60 * 60 * 24)
console.log(days)const deadline = new Date(Date.UTC(2026, 8, 28))
deadline.setUTCDate(deadline.getUTCDate() + 7)
console.log(deadline)Metody set...() same przenoszą nadmiar dni na kolejny miesiąc, więc 28 września plus 7 dni daje 5 października.
Obsługa przeglądarek
#Szeroko dostępne
Działa we wszystkich nowoczesnych przeglądarkach, także na telefonach. Możesz używać bez obaw.
- Chrome
- Edge
- Firefox
- Safari
Dobre praktyki
#- Pamiętaj, że miesiące liczą się od zera:
new Date(2026, 0, 1)to 1 stycznia, a nie 1 lutego. - Daty zapisuj i przesyłaj w formacie ISO (
toISOString()), a na lokalny zapis zamieniaj dopiero przy wyświetlaniu. - Napis z samą datą, np.
"2026-09-28", jest traktowany jako czas UTC, a napis z godziną bezZna końcu jako czas lokalny. To częsta przyczyna przesunięć o kilka godzin.
Powiązane hasła
#- Intl.DateTimeFormatFormatuje daty i godziny zgodnie z zasadami wybranego języka i strefy czasowej.
- JSON.stringify()Zamienia wartość JavaScript, np. obiekt lub tablicę, na napis w formacie JSON.
- Intl.NumberFormatFormatuje liczby zgodnie z zasadami danego języka: separatory, waluty, procenty i jednostki.
- setInterval()Wywołuje funkcję cyklicznie, co podany odstęp czasu, aż do zatrzymania przez clearInterval().
Widzisz błąd albo brakuje przykładu? Napisz do nas.