S jednou z těchto náhradních knihoven překračujte vestavěné možnosti data a času JavaScriptu.
Vestavěná podpora pro práci s datem v JavaScriptu je užitečná, ale její použití může být nepříjemné. Složité operace, jako je převod časových pásem a formátování data, jsou často náročné.
Naštěstí je k dispozici několik balíčků, díky kterým je práce s daty a časy v JavaScriptu méně stresující. Zde se dozvíte o některých z těchto balíčků a o tom, jak můžete začít pracovat na těchto balíčcích.
Pokud jde o práci s daty a časy, nativní objekt Date JavaScript má omezenou funkčnost.
Moment.js, JavaScriptová knihovna, zavedla mnoho funkcí nedostupných v nativním objektu Date. Výsledkem je, že se stala oblíbenou knihovnou pro práci s daty a časy.
Chcete-li nainstalovat Moment.js s npm, spusťte následující příkaz z adresáře projektu:
npm Nainstalujte moment
Po instalaci můžete do projektu importovat Moment.js a provádět operace s knihovnou:
konst moment = vyžadovat('moment');
konst now = moment();
konst nowString = now.format('RRRR-MM-DD HH: mm: ss');
řídicí panel.log(`Aktuální datum a čas je ${nowString}`);
Tento fragment kódu importuje knihovnu Moment.js a vytvoří objekt momentu pomocí aktuálního data a času s moment() funkce. Potom ukazuje, jak formátovat vytvořený objekt data jako řetězec s formát() metoda, která má jako argument formát data/času.
Tuto knihovnu můžete také použít k přidávání a odečítání časových intervalů:
konst addTenMinutes = moment().add(10, 'minut');
řídicí panel.log(`${addTenMinutes.format('h: mm a')}`);
konst odečístTwoDays = moment().subtract(2, 'dny');
řídicí panel.log(`${subtractTwoDays.format('dddd, MMMM Do YYYY')}`);
Program zaznamená do konzole dvě proměnné v různých formátech. První, přidatTenMinutes, uchovává výsledek přidání 10 minut k aktuálnímu datu a času. Druhý, odečíst dva dny, má aktuální hodnotu data a času s odečtením dvou dnů.
Moment.js může provádět další operace, jako je kontrola přestupných let a převod z jednoho formátu data na jiný.
Je důležité poznamenat, že Moment.js již nespravuje jeho hlavní vývojářský tým. Vývojáři doporučují použít alternativu, jako je Luxon.js.
Luxon.js je robustní a modernější JavaScript knihovna pro práci s daty. Alternativa k Moment.js řeší omezení starší knihovny, jako je mutabilita.
Luxon můžete nainstalovat pomocí npm a poté jej importovat Čas schůzky třídy ve vašem projektu Node.js pomocí vyžadovat() funkce:
konst { DateTime } = vyžadovat('luxon');
V Luxonu objekty DateTime odkazují na časové instance, které sahají až do milisekund.
Můžete vytvořit nový Čas schůzky objekty a přístup k jejich komponentám, jako je rok, měsíc, minuta a sekunda:
konst now = DateTime.now();
konst rok = nyní.rok;
konst minuta = nyní.minuta;
konst druhý = nyní.druhý;
Tento kód vytvoří nový Čas schůzky objekt představující aktuální datum a čas pomocí Nyní() metoda. Poté přistupuje ke komponentám tohoto data pomocí rok, minuta, a druhý vlastnosti.
Hlavním rozdílem mezi Luxon.js a Moment.js je jeho neměnný charakter. Všechny objekty DateTime jsou v Luxonu neměnné, což znamená, že nemůžete upravovat vlastnosti DateTime. Místo toho můžete vytvořit nové instance DateTime ze stávajících.
Například:
konst now = DateTime.now();
konst zítra = hned.plus({ dní: 1 });
Tento kód vytvoří nový Čas schůzky objekt pojmenovaný zítra založeno na Nyní objekt pomocí Plus metodu a předá jí hodnotu 1 den jako argument. Metoda plus vytvoří nový objekt DateTime se zadaným počtem dnů přidaných k původnímu objektu.
Další výhodou Luxon.js je spolehlivá podpora časového pásma, která je nezbytná pro práci s daty a časy v moderních webových aplikacích. Knihovna používá rozhraní API pro internacionalizaci v moderních prohlížečích, aby poskytovaly přesnou podporu časového pásma.
Jednou z nevýhod Luxon.js jsou však omezené zdroje komunity.
Date-fns je velmi lehká JavaScriptová knihovna navržená pro práci s daty a časy. Staví na nativním objektu JavaScript.
Date-fns používá techniky funkčního programování a obsahuje neměnnou funkci, která usnadňuje práci s daty a snižuje pravděpodobnost chyb ve vašem kódu.
Po instalaci date-fns pomocí npm importujte balíček do svého programu pomocí funkce require:
konst { format, addDays } = vyžadovat('date-fns');
Date-fns je modulární. Obsahuje mnoho funkcí, ke kterým máte přístup destrukcí balíčku, jak je znázorněno v bloku kódu výše. Kód importuje pouze funkce format a addDays z knihovny date-fns.
Zde je příklad použití obou těchto funkcí:
konst dnes = Novýdatum();
konst formattedDate = formát (dnes, 'yyyy-MM-dd');
řídicí panel.log (formattedDate);
konst zítra = formát (addDays (dnes, 1), 'yyyy-MM-dd');
řídicí panel.log (zítra);
Tento program demonstruje použití knihovny date-fns v JavaScriptu k formátování a manipulaci s daty.
Vytváří nový datum objekt představující aktuální datum. Formátuje aktuální datum pomocí formát funkce z knihovny date-fns.
Poté používá addDays funkce k vytvoření nového objektu Date představujícího zítřejší datum, naformátuje jej pomocí formát a zaprotokoluje aktuální datum i zítřejší datum do konzole v "yyyy-MM-dd" formát.
Nevýhodou použití Date-fns je, že neposkytuje podporu časového pásma. Místo toho používá samostatnou knihovnu pro práci s časovými pásmy pomocí pomocných funkcí.
Day.js, další velmi lehká knihovna, je dobrou volbou, pokud hledáte neměnnou, menší a rychlejší alternativu k Moment.js.
Day.js můžete nainstalovat jako balíček ve svém projektu JavaScript spuštěním následujícího příkazu npm:
npm Nainstalujte dayjs
Chcete-li po instalaci importovat Day.js do svého projektu, můžete použít následující kód:
konst dayjs = vyžadovat('dayjs')
Zde jsou některé základní funkce a metody dostupné v Day.js
konst now = dayjs();
konst datum = dayjs('2023-03-23', 'RRRR-MM-DD');
konst měsíc = datum.měsíc();
konst formattedDate = datum.format('MMMM D, YYYY');
konst příštíTýden = datum.přidat(1, 'týden');
Výše uvedený kód vytvoří nový objekt Day.js představující aktuální datum a čas, analyzuje řetězec data s vlastním formátem a získá měsíc z datum variabilní. Také ukazuje, jak formátovat a přidat instanci data.
Stejně jako Date-fns, ani Day.js nemůže sám o sobě poskytovat podporu časového pásma. Day.js používá systém pluginů, takže použití je matoucí.
Z pokrytých balíčků je Day.js nejpodobnější Moment.js. To usnadňuje přepínání mezi těmito dvěma, pokud potřebujete.
Výběr správné knihovny pro vaši aplikaci
Výběr správné knihovny data a času pro vaši aplikaci JavaScript je důležitým rozhodnutím, které může mít velký dopad na kvalitu a udržovatelnost vašeho kódu.
Každá ze zde diskutovaných knihoven má své silné a slabé stránky, proto je důležité před rozhodnutím pečlivě zhodnotit své požadavky.