Lépjen túl a JavaScript beépített dátum- és időképességein ezen helyettesítő könyvtárak egyikével.
A JavaScript beépített támogatása a dátumkezeléshez hasznos, de használata kényelmetlen lehet. Az olyan összetett műveletek, mint az időzóna-konverzió és a dátumformázás, gyakran kihívást jelentenek.
Szerencsére több olyan csomag is elérhető, amelyek kevésbé megterhelővé teszik a JavaScriptben a dátumokkal és időpontokkal való munkát. Itt megtudhatja néhány ilyen csomagról, és arról, hogyan kezdhet el dolgozni ezeken a csomagokon.
Ha a dátumokkal és időpontokkal kell dolgozni, a natív JavaScript dátum objektum korlátozott funkcionalitással rendelkezik.
A Moment.js, a JavaScript-könyvtár számos olyan funkciót vezetett be, amelyek nem érhetők el a natív Date objektumban. Ennek eredményeként ez a könyvtár a dátumokkal és időpontokkal való munkavégzéshez használható.
A Moment.js npm-mel történő telepítéséhez futtassa a következő parancsot a projektkönyvtárból:
npm telepítés pillanat
A telepítés után importálhatja a Moment.js fájlt a projektbe, és műveleteket hajthat végre a könyvtárral:
const pillanat = igényelnek('pillanat');
const most = pillanat();
const nowString = now.format("ÉÉÉÉ-HH-NN ÓÓ: mm: ss");
konzol.log(`Az aktuális dátum és idő ${nowString}`);
Ez a kódrészlet importálja a Moment.js könyvtárat, és pillanatobjektumot hoz létre az aktuális dátum és idő használatával pillanat() funkció. Ezután bemutatja, hogyan kell a létrehozott dátumobjektumot karakterláncként formázni a formátum() metódust, amely egy dátum/idő formátumot vesz argumentumként.
Ezt a könyvtárat időintervallumok hozzáadására és kivonására is használhatja:
const addTenMinutes = pillanat().add(10, 'percek');
konzol.log(`${addTenMinutes.format("ó: mm a")}`);
const subtractTwoDays = pillanat().kivon(2, 'napok');
konzol.log(`${subtractTwoDays.format('ddd, HHH, ÉÉÉÉ)}`);
A program két változót naplóz a konzolra, különböző formátumokban. Az első, addTenMinutes, az aktuális dátumhoz és időhöz 10 perc hozzáadásának eredményét tárolja. A második, kivonni Két Napot, az aktuális dátum és idő értéke van, ebből levonva a két napot.
A Moment.js más műveleteket is végrehajthat, mint például a szökőévek ellenőrzése és az egyik dátumformátumról a másikra való konvertálás.
Fontos megjegyezni, hogy a Moment.js-t már nem a fő fejlesztői csapat karbantartja. A fejlesztők egy olyan alternatívát javasolnak, mint a Luxon.js.
A Luxon.js egy robusztus és modernebb JavaScript-könyvtár a dátumokkal való munkavégzéshez. A Moment.js alternatívájaként kezeli a régebbi könyvtár korlátait, például a változékonyságot.
Telepítheti a Luxont az npm-mel, majd importálhatja Dátum idő osztály a Node.js projektben a igényel() funkció:
const { DateTime } = igényelnek("luxon");
A Luxonban a DateTime objektumok olyan időpéldányokra vonatkoznak, amelyek egészen ezredmásodpercig terjednek.
Létrehozhat újat Dátum idő objektumok és összetevőik elérése, például az év, hónap, perc és másodperc:
const most = DateTime.now();
const év = most.év;
const perc = most.perc;
const második = most.másodperc;
Ez a kód újat hoz létre Dátum idő objektum, amely az aktuális dátumot és időt reprezentálja a Most() módszer. Ezután a következővel éri el az adott dátum összetevőit év, perc, és második tulajdonságait.
A Luxon.js és a Moment.js közötti fő különbség a változatlan karaktere. Minden DateTime objektum megváltoztathatatlan a Luxonban, ami azt jelenti, hogy nem módosíthatja a DateTime tulajdonságait. Ehelyett létrehozhat új DateTime példányokat a meglévőkből.
Például:
const most = DateTime.now();
const holnap = most.plus({ napok: 1 });
Ez a kód újat hoz létre Dátum idő nevű objektum holnap alapján Most objektum segítségével a plusz módszert, 1 nap értéket adva át neki argumentumként. A plusz metódus létrehoz egy új DateTime objektumot a megadott számú nap hozzáadásával az eredeti objektumhoz.
A Luxon.js másik előnye a megbízható időzóna-támogatás, amely elengedhetetlen a dátumokkal és időpontokkal való munkavégzéshez a modern webes alkalmazásokban. A könyvtár használja az Internationalization API modern böngészőkben, hogy pontos időzóna támogatást nyújtson.
A Luxon.js egyik hátránya azonban a korlátozott közösségi erőforrások.
A Date-fns egy nagyon könnyű JavaScript-könyvtár, amelyet a dátumok és időpontok kezelésére terveztek. A natív JavaScript objektumra épül.
Date-fns használ funkcionális programozási technikák és tartalmaz egy megváltoztathatatlan funkciót, amely egyszerűbbé teszi a dátumokkal való munkát, és csökkenti a hibák valószínűségét a kódban.
A date-fns npm paranccsal történő telepítése után importálja a csomagot a programjába a request függvény segítségével:
const { formátum, addDays } = igényelnek('date-fns');
A dátum-fns moduláris. Rengeteg olyan funkciót tartalmaz, amelyeket a csomag strukturálásának megsemmisítésével érhet el, ahogy az a fenti kódblokkban látható. A kód csak a formátumot és az addDays függvényeket importálja a date-fns könyvtárból.
Íme egy példa mindkét funkció használatára:
const ma = újDátum();
const formattedDate = formátum (ma, "éééé-hh-nn");
konzol.log (formattedDate);
const holnap = formátum (addDays (ma, 1), "éééé-hh-nn");
konzol.log (holnap);
Ez a program bemutatja a dátum-fns könyvtár használatát JavaScriptben a dátumok formázásához és kezeléséhez.
Újat hoz létre Dátum az aktuális dátumot képviselő objektum. Az aktuális dátumot a következővel formázza formátum függvényt a date-fns könyvtárból.
Ezután a addDays függvény segítségével hozzon létre egy új Date objektumot, amely a holnap dátumát reprezentálja, és formázza azt a formátum függvényt, és mind az aktuális, mind a holnapi dátumot naplózza a konzolon a "éééé-hh-nn" formátumban.
A Date-fns használatának hátránya, hogy nem nyújt időzóna támogatást. Ehelyett egy külön könyvtárat használ az időzónák kezeléséhez a segédfunkciók segítségével.
A Day.js, egy másik nagyon könnyű könyvtár, jó választás, ha megváltoztathatatlan, kisebb, gyorsabb alternatívát keres a Moment.js helyett.
A Day.js-t csomagként telepítheti JavaScript-projektjébe a következő npm parancs futtatásával:
npm telepítés dayjs
A telepítés után a Day.js projektbe való importálásához a következő kódot használhatja:
const dayjs = igényelnek("dayjs")
Íme néhány alapvető funkció és módszer a Day.js-ben
const most = dayjs();
const dátum = dayjs('2023-03-23', "ÉÉÉÉ-HH-NN");
const hónap = dátum.hónap();
const formattedDate = date.format(„HHH D, ÉÉÉÉ”);
const nextWeek = date.add(1, 'hét');
A fenti kód létrehoz egy új Day.js objektumot, amely az aktuális dátumot és időt reprezentálja, elemzi a dátum karakterláncot egyéni formátumban, és lekéri a hónapot a dátum változó. Azt is bemutatja, hogyan kell formázni és hozzáadni egy dátumpéldányt.
A Date-fns-hez hasonlóan a Day.js sem képes önmagában időzóna támogatást nyújtani. A Day.js beépülő modulrendszert használ, ami zavaróvá teszi a használatát.
A lefedett csomagok közül a Day.js hasonlít leginkább a Moment.js-hez. Ez megkönnyíti a váltást a kettő között, ha szükséges.
A megfelelő könyvtár kiválasztása az alkalmazáshoz
A megfelelő dátum- és időkönyvtár kiválasztása a JavaScript-alkalmazáshoz fontos döntés, amely nagy hatással lehet a kód minőségére és karbantarthatóságára.
Az itt tárgyalt könyvtárak mindegyikének megvannak a maga erősségei és gyengeségei, ezért fontos, hogy alaposan mérlegelje igényeit, mielőtt döntést hozna.