Data na timestamp
Konwertuj datę na znacznik czasu.
Zamiana daty na znacznik uniksowy
Data jest niejednoznaczna, dopóki nie powiesz, w jakiej jest strefie. Znacznik nie jest — to pojedynczy moment liczony od 1970 roku w UTC. Przeliczenie między nimi wymaga wskazania strefy, a pomyłka przesuwa wynik o godziny.
Jak to działa
- Interpretuje podaną datę i godzinę w wybranej strefie, a potem liczy sekundy od epoki uniksowej.
- Podaje wynik w sekundach i milisekundach, bo różne systemy oczekują różnych jednostek.
- Wskazuje strefę jawnie, zamiast po cichu zakładać strefę przeglądarki — a to właśnie stąd bierze się większość błędów konwersji.
znacznik = sekundy od 1970-01-01T00:00:00Z ta sama godzina zegarowa w dwóch strefach daje dwa różne znaczniki, rozdzielone różnicą ich przesunięć milisekundy = sekundy × 1000
Przykład z liczbami
Godzina 15:00 dnia 20 marca 2026, interpretowana najpierw jako UTC, a potem jako czas warszawski.
- 2026-03-20T15:00:00Z → 1774018800
- w milisekundach → 1774018800000
- 2026-03-20T15:00:00+01:00 (Warszawa) → 1774015200
- oba różnią się o 3600 sekund — dokładnie o godzinę
Ta sama data, ten sam odczyt zegara, dwa znaczniki oddalone o godzinę. Strefa to nie szczegół formatowania, tylko część znaczenia daty.
Jak czytać wynik
- Sam napis daty w rodzaju 2026-03-20 jest według specyfikacji ECMAScript parsowany jako północ UTC, a 2026-03-20T00:00:00 bez Z jako czas lokalny. Różnią się o twoje przesunięcie i dlatego wejścia zawierające samą datę to częsty powód błędów o jeden dzień.
- Czas uniksowy pomija sekundy przestępne. Każda doba ma dokładnie 86 400 sekund, więc znacznik nie jest prawdziwą liczbą upłyniętych sekund fizycznych — do mierzenia odstępów użyj zegara monotonicznego.
- Sprawdź, czy system odbiorczy chce sekund czy milisekund. Dziesięć cyfr to sekundy, trzynaście to milisekundy, a podanie jednego zamiast drugiego daje datę w 1970 albo w roku 57 000.
- Dla dat sprzed 1970 znacznik jest ujemny. To poprawne, ale obsługa bywa różna — część baz i bibliotek odrzuca albo źle przetwarza wartości ujemne.
Częste pytania
- Dlaczego moja data wypada o dzień wcześniej albo później?
- Niemal zawsze przez założenie strefy przy wartości zawierającej samą datę. Jeśli wpiszesz 2026-03-20, a system odczyta to jako północ UTC, każdy na zachód od Greenwich zobaczy lokalnie dziewiętnastego. Do daty, którą zamierzasz przeliczać, zawsze dołącz jawną godzinę i strefę.
- Przechowywać daty czy znaczniki?
- Przechowuj moment w UTC zawsze wtedy, gdy zapisywana rzecz wydarzyła się w konkretnej chwili — zdarzenie, wpis w logu, transakcja. Samą datę przechowuj tylko wtedy, gdy strefa naprawdę nie ma znaczenia, jak przy dacie urodzin, gdzie 20 marca znaczy wszędzie to samo.