Wyjdź poza wbudowane możliwości JavaScript dotyczące daty i godziny dzięki jednej z tych bibliotek zastępczych.

Wbudowana w JavaScript obsługa dat jest przydatna, ale może być niewygodna w użyciu. Złożone operacje, takie jak konwersja stref czasowych i formatowanie daty, często stanowią wyzwanie.

Na szczęście dostępnych jest kilka pakietów, dzięki którym praca z datami i godzinami w JavaScript jest mniej stresująca. Tutaj dowiesz się o niektórych z tych pakietów i jak możesz rozpocząć pracę nad tymi pakietami.

Jeśli chodzi o pracę z datami i godzinami, natywny obiekt JavaScript Date ma ograniczoną funkcjonalność.

Moment.js, biblioteka JavaScript, wprowadziła wiele funkcji niedostępnych w natywnym obiekcie Date. W rezultacie stała się podstawową biblioteką do pracy z datami i godzinami.

Aby zainstalować Moment.js z npm, uruchom następujące polecenie z katalogu projektu:

np zainstalować za chwilę

Po instalacji możesz zaimportować Moment.js do swojego projektu i wykonać operacje na bibliotece:

konst chwila = wymagać('za chwilę');
konst teraz = chwila();
konst terazString = teraz.format(„RRRR-MM-DD GG: mm: ss”);

konsola.dziennik(`Bieżąca data i godzina to ${terazString}`);

Ten fragment kodu importuje bibliotekę Moment.js i tworzy obiekt momentu przy użyciu bieżącej daty i godziny z rozszerzeniem za chwilę() funkcjonować. Następnie demonstruje, jak sformatować utworzony obiekt daty jako ciąg z format() metoda, która jako argument przyjmuje format daty/czasu.

Możesz także użyć tej biblioteki do dodawania i odejmowania przedziałów czasu:

konst addDziesięćMinut = moment().add(10, 'minuty');
konsola.dziennik(`${addDziesięćMinut.format(„h: mm a”)}`);

konst odejmujDwaDni = moment().odejmuj(2, 'dni');
konsola.dziennik(`${subtractTwoDays.format(„dddd, MMMM Zrób RRRR”)}`);

Program rejestruje dwie zmienne w konsoli, w różnych formatach. Pierwszy, dodajDziesięćMinut, zawiera wynik dodania 10 minut do bieżącej daty i godziny. Drugi, odejmijDwaDni, zawiera aktualną datę i godzinę z odjętymi dwoma dniami.

Moment.js może wykonywać inne operacje, takie jak sprawdzanie lat przestępnych i konwersja z jednego formatu daty na inny.

Należy zauważyć, że Moment.js nie jest już utrzymywany przez główny zespół programistów. Twórcy zalecają użycie alternatywy, takiej jak Luxon.js.

Luxon.js to solidna i nowocześniejsza biblioteka JavaScript do pracy z datami. Alternatywa dla Moment.js, odnosi się do ograniczeń starszej biblioteki, takich jak zmienność.

Możesz zainstalować Luxon za pomocą npm, a następnie zaimportować go DataGodzina class w swoim projekcie Node.js przy użyciu wymagać() funkcjonować:

konst {DataCzas} = wymagać(„Lukson”);

W Luxon obiekty DateTime odnoszą się do instancji czasu, które sięgają aż do milisekund.

Możesz utworzyć nowe DataGodzina obiektów i uzyskać dostęp do ich składników, takich jak rok, miesiąc, minuta i sekunda:

konst teraz = DateTime.now();
konst rok = teraz.rok;
konst minuta = teraz.minuta;
konst sekunda = teraz.drugi;

Ten kod tworzy nowy DataGodzina obiekt reprezentujący aktualną datę i godzinę za pomocą Teraz() metoda. Następnie uzyskuje dostęp do składników tej daty za pomocą rok, minuta, I drugi nieruchomości.

Główną różnicą między Luxon.js a Moment.js jest jego niezmienny charakter. Wszystkie obiekty DateTime są niezmienne w Luxonie, co oznacza, że ​​nie można modyfikować właściwości DateTime. Zamiast tego możesz tworzyć nowe instancje DateTime z istniejących.

Na przykład:

konst teraz = DateTime.now();
konst jutro = teraz.plus({ dni: 1 });

Ten kod tworzy nowy DataGodzina obiekt o nazwie jutro na podstawie Teraz obiekt, używając plus metody, przekazując jej jako argument wartość 1 dzień. Metoda plus tworzy nowy obiekt DateTime z określoną liczbą dni dodanych do oryginalnego obiektu.

Kolejną zaletą Luxon.js jest niezawodna obsługa stref czasowych, która jest niezbędna do pracy z datami i godzinami w nowoczesnych aplikacjach internetowych. Biblioteka korzysta interfejs API internacjonalizacji w nowoczesnych przeglądarkach, aby zapewnić dokładną obsługę stref czasowych.

Jednak jedną z wad Luxon.js są ograniczone zasoby społeczności.

Date-fns to bardzo lekka biblioteka JavaScript przeznaczona do pracy z datami i godzinami. Opiera się na natywnym obiekcie JavaScript.

Zastosowania Date-fns techniki programowania funkcyjnego i zawiera niezmienną funkcję, która upraszcza pracę z datami i zmniejsza prawdopodobieństwo błędów w kodzie.

Po zainstalowaniu date-fns za pomocą npm zaimportuj pakiet do swojego programu za pomocą funkcji require:

konst { format, dodajDni} = wymagać(„data-fns”);

Date-fns jest modułowy. Zawiera wiele funkcji, do których można uzyskać dostęp, niszcząc pakiet, jak pokazano w powyższym bloku kodu. Kod importuje tylko funkcje format i addDays z biblioteki date-fns.

Oto przykład użycia obu tych funkcji:

konst dzisiaj = nowyData();
konst formattedDate = format (dzisiaj, „rrrr-MM-dd”);
konsola.log (sformatowana data);

konst jutro = format (addDays (dzisiaj, 1), „rrrr-MM-dd”);
konsola.log (jutro);

Ten program demonstruje użycie biblioteki date-fns w JavaScript do formatowania i manipulowania datami.

Tworzy nowe Data obiekt reprezentujący aktualną datę. Formatuje bieżącą datę za pomocą formatu format funkcja z biblioteki date-fns.

Następnie używa tzw dodaj dni aby utworzyć nowy obiekt Date reprezentujący jutrzejszą datę, formatuje go przy użyciu formatu format funkcji i rejestruje zarówno bieżącą datę, jak i datę jutrzejszą w konsoli w „rrrr-MM-dd„Format.

Wadą korzystania z Date-fns jest to, że nie zapewnia obsługi stref czasowych. Zamiast tego używa osobnej biblioteki do pracy ze strefami czasowymi za pomocą funkcji pomocniczych.

Day.js, kolejna bardzo lekka biblioteka, to dobry wybór, jeśli szukasz niezmiennej, mniejszej i szybszej alternatywy dla Moment.js.

Możesz zainstalować Day.js jako pakiet w swoim projekcie JavaScript, uruchamiając następującą komendę npm:

np zainstalować dayjs

Aby zaimportować Day.js do swojego projektu po instalacji, możesz użyć następującego kodu:

konst dnijs = wymagać('dayjs')

Oto kilka podstawowych funkcji i metod dostępnych w Day.js

konst teraz = dayjs();

konst data = dzieńjs('2023-03-23', „RRRR-MM-DD”);

konst miesiąc = data.miesiąc();

konst sformatowanaData = data.format(„MMMM D, RRRR”);

konst następnyTydzień = data.add(1, 'tydzień');

Powyższy kod tworzy nowy obiekt Day.js reprezentujący bieżącą datę i godzinę, analizuje ciąg daty w niestandardowym formacie i pobiera miesiąc z data zmienny. Pokazuje również, jak sformatować i dodać do instancji daty.

Podobnie jak Date-fns, Day.js nie może samodzielnie zapewnić obsługi stref czasowych. Day.js korzysta z systemu wtyczek, co sprawia, że ​​korzystanie z niego jest mylące.

Spośród omawianych pakietów Day.js jest najbardziej podobny do Moment.js. Ułatwia to przełączanie się między nimi, jeśli zajdzie taka potrzeba.

Wybór odpowiedniej biblioteki dla Twojej aplikacji

Wybór odpowiedniej biblioteki dat i godzin dla aplikacji JavaScript to ważna decyzja, która może mieć duży wpływ na jakość i łatwość utrzymania kodu.

Każda z omawianych tu bibliotek ma swoje mocne i słabe strony, dlatego przed podjęciem decyzji należy dokładnie ocenić swoje wymagania.