Daty
Uff, to jest ciężki temat. Każdy kiedyś zetknie się z datami (lub już się zetknął) i bez odpowiednich narzędzi potrafi to być czasem droga przez mękę. Te wszystkie strefy czasowe, wyświetlanie w różnych formatach, porównywanie itd.
Nasz naczelny Żelownik Bartuś podrzucił libkę o nazwie date-fns. Popieram go całym serduszkiem i dzięki niej mam nadzięję sprawię, że to daty będą bały się Was a nie na odwrót.
Get started
-
Dodaj libke
-
Zaimportuj funkcję
format
z libki: -
Używaj jako
format(data, formater)
.
Przykłady
Formatowanie daty
Użycie funkcji format
do sformatowania daty w czytelny sposób.
Dzisiejsza data: 22/12/2024
Dodawanie dni do daty
Użycie funkcji addDays
, aby obliczyć przyszłe daty.
Data za tydzień: 29 December 2024
Porównywanie dat
Sprawdzanie, czy jedna data jest przed lub po innej.
Wydarzenie jest w przyszłości!
Lokalizacja dat
Formatowanie daty w języku np. Angielskim za pomocą opcji locale
.
Dzisiejsza data: Sunday, 22 December 2024
Obliczanie różnicy między datami
Użycie differenceInDays
do obliczenia liczby dni między dwiema datami.
Do Nowego Roku zostało: 9 dni
Wyświetlanie upływu czasu
Wyświetlanie, ile czasu upłynęło od podanej daty za pomocą formatDistance
, np. 10 sekund temu
.
Wydarzenie miało miejsce około 2 miesiące temu.
Dziwne literki do formatowania
Do formatowania dat używamy literek. Każda znaczy co innego. Ważne jest również, czy jest duża czy mała. Szybka ściągawka z najpotrzebniejszymi robaczkami.
Litera | Opis | Przykład (dla 2024-11-27 04:07:09 ) |
---|---|---|
d | Dzień miesiąca (bez zera na początku) | 27 |
dd | Dzień miesiąca (z zerem na początku) | 27 |
E | Skrócony dzień tygodnia | Wed |
EEEE | Pełna nazwa dnia tygodnia | Wednesday |
M | Miesiąc (bez zera na początku) | 11 |
MM | Miesiąc (z zerem na początku) | 11 |
MMM | Skrócona nazwa miesiąca | Nov |
MMMM | Pełna nazwa miesiąca | November |
yy | Ostatnie dwie cyfry roku | 24 |
yyyy | Pełny rok | 2024 |
H | Godzina w formacie 24-godzinnym | 14 |
HH | Godzina w formacie 24-godzinnym (z zerem) | 14 |
h | Godzina w formacie 12-godzinnym | 2 |
hh | Godzina w formacie 12-godzinnym (z zerem) | 02 |
a | AM/PM | PM |
m | Minuty (bez zera na początku) | 7 |
mm | Minuty (z zerem na początku) | 07 |
s | Sekundy (bez zera na początku) | 9 |
ss | Sekundy (z zerem na początku) | 09 |
XXX | Strefa czasowa z dwukropkiem | +01:00 |
x | Czas w milisekundach od UNIX Epoch | 1732610829000 |
Robaczki można dowolnie łączyć. Kilka przykładów:
Strefy czasowe
Strefy czasowe to też spory temat, więc postanowiłem zrobić dla nich osobny rodział. Aby używać date-fns
dla stref czasowych potrzebujemy specjalnego pakietu o nazwie date-fns-tz
.
Get started
-
Dodaj dodatkowy pakiet
Przykłady
Wyświetlanie daty w konkretnej strefie czasowej
Użyj funkcji formatInTimeZone
z biblioteki date-fns-tz
.
Aktualny czas w Warszawie: 2024-12-22 15:38:06 +01:00
Przekształcenie daty z jednej strefy czasowej na inną
Użyj funkcji toZonedTime
i format
z date-fns
oraz date-fns-tz
.
Czas w Nowym Jorku: 2024-11-27 07:00:00 -05:00
Obliczanie różnicy czasu między strefami
Możesz obliczyć różnicę w godzinach między dwiema strefami czasowymi, używając kombinacji toZonedTime
i zwykłego obliczenia różnicy dat.
Różnica czasu między Warszawą a Tokio: 8 godzin