Skip to main content

Milisekundy na datę

Konwertuj milisekundy na czytelną datę. Wprowadź znacznik czasu w milisekundach (np. 1704067200000).

Dodanie dokładnie 24 godzin w milisekundach wypada o 13:00, a nie o 12:00

Doba to 86 400 000 milisekund, poza dwoma dniami w roku, gdy nią nie jest. Dodaj to do południa w dniu wiosennej zmiany czasu, a zegar pokaże 13:00; zrób to samo jesienią, a pokaże 11:00. Arytmetyka jest poprawna — dzień kalendarzowy i 24 godziny są po prostu dwa razy w roku czymś innym.

Jak to działa

  • Przelicza znaczniki czasu w milisekundach na daty i z powrotem, w UTC i czasie lokalnym.
  • Pokazuje rozbicie na jednostki, bo wartości milisekundowe trudno odczytać na pierwszy rzut oka.
  • Sygnalizuje granicę, na której Date przestaje być poprawną datą, a psuje się to po cichu, a nie głośno.
1 sekunda = 1000 ms      1 godzina = 3 600 000 ms
1 minuta = 60 000 ms     1 doba    = 86 400 000 ms

zakres obiektu Date w JavaScripcie = ±8 640 000 000 000 000 ms
  → +275760-09-13 oraz −271821-04-20

jedna milisekunda dalej → Invalid Date

Przykład z liczbami

Dodanie doby w milisekundach przy każdej ze zmian czasu oraz granica zakresu.

  1. start 28 marca 2026, 12:00 — dodaj 86 400 000 ms → 29 marca, 13:00
  2. start 24 października 2026, 12:00 — dodaj 86 400 000 ms → 25 października, 11:00
  3. 8 640 000 000 000 000 ms → +275760-09-13, czyli maksimum
  4. o milisekundę więcej → Invalid Date
  5. ta Invalid Date wciąż jest obiektem, a getTime() zwraca NaN

Żadna ze zmian nie sprowadza cię z powrotem na 12:00, bo dzień kalendarzowy trwał 23 albo 25 godzin. A awaria zakresu jest gorsza niż wyjątek: Invalid Date przechodzi test instanceof Date, więc płynie dalej i zamienia każde późniejsze obliczenie w NaN.

Jak czytać wynik

  • Używaj arytmetyki kalendarzowej, gdy masz na myśli „o tej samej porze jutro”, a milisekundowej, gdy masz na myśli „za 24 godziny”. Zgadzają się przez 363 dni w roku i właśnie dlatego rozbieżność tak rzadko wychodzi w testach.
  • Invalid Date to groźny tryb awarii, bo nie jest błędem. To obiekt Date, którego getTime() zwraca NaN, a NaN propaguje się po cichu przez każdą kolejną operację, aż coś daleko dalej wyrenderuje się jako puste albo zerowe.
  • Granica zakresu to ±100 000 000 dni od epoki, co jest na tyle hojne, że jej osiągnięcie niemal zawsze oznacza złe mnożenie, a nie prawdziwą datę — najczęściej sekundy podane tam, gdzie oczekiwano milisekund, co zawyża wartość tysiąckrotnie.
  • Milisekundy mieszczą się swobodnie w bezpiecznym zakresie liczb całkowitych, więc w odróżnieniu od nanosekund mogą żyć w zwykłej liczbie bez utraty cyfr. To praktyczny powód, dla którego większość API zatrzymała się na milisekundach, a nie na czymś drobniejszym.

Częste pytania

Dlaczego moja data jest o godzinę obok po dodaniu doby?
Przekroczyłeś zmianę czasu. Dodanie 86 400 000 ms dodaje dokładnie 24 godziny, ale ten dzień kalendarzowy miał ich 23 albo 25. Jeśli chciałeś tej samej godziny na zegarze, dodaj jeden dzień arytmetyką kalendarzową, a nie stałą liczbą milisekund.
Co oznacza Invalid Date?
Wartość wypadła poza ±8 640 000 000 000 000 ms albo nie dała się sparsować. To nie wyjątek — to obiekt Date, którego getTime() zwraca NaN, więc płynie dalej przez twój kod i po cichu zamienia późniejszą arytmetykę również w NaN.

Przewodnik po timestamp w milisekundach

Timestamp w milisekundach to najpopularniejszy format używany we współczesnych aplikacjach internetowych i JavaScript. Każda milisekunda to jedna tysięczna część sekundy, co daje większa dokładność niż tradycyjne sekundy. JavaScript (Date.now()) i JVM zwracają czas właśnie w tym formacie, co sprawia ze jest to standard de facto dla większości platform webowych.

JavaScript i timestamp

W JavaScript.now() zwraca timestamp w milisekundach od epoch 1970. W przeciwieństwie do innych języków, JavaScript nie ma wbudowanego obiektu Date obsługującego nanosekundy. Aby uzyskać większa precyzję, programiści używają performance.now() który zwraca ułamki milisekund z dokładnością do mikrosekund.

Zastosowania wymagające milisekund

Precyzja milisekund jest krytyczna w: systemach tradingowych gdzie kolej_execucji zleceń ma znaczenie, profilowaniu wydajności aplikacji webowych, animacjach i grach przeglądarkowych dla płynności 60+ FPS, systemach IoT zbierających dane z czujników w czasie rzeczywistym, oraz w logowaniu zdarzeń do analizy incydentów.

Rzutowanie i konwersja

Aby przekonwertowac milisekundy na inne formaty, pamiętaj: dziel przez 1000 dla sekund, dziel przez 1000000 dla nanosekund, dziel przez 1000 * 60 dla minut, itd. Windows .NET i inne systemy mogą używać innego epoch - sprawdź zawsze dokumentacje.