Gå ud over JavaScripts indbyggede dato- og tidsfunktioner med et af disse erstatningsbiblioteker.
JavaScripts indbyggede understøttelse af datohåndtering er nyttig, men det kan være besværligt at bruge. Komplekse operationer som tidszonekonverteringer og datoformatering er ofte udfordrende.
Heldigvis er der flere pakker tilgængelige, der gør arbejdet med datoer og tidspunkter i JavaScript mindre stressende. Her vil du lære om nogle af disse pakker, og hvordan du kan komme i gang med at arbejde på disse pakker.
Når det kommer til at arbejde med datoer og tidspunkter, det oprindelige JavaScript Date-objekt har begrænset funktionalitet.
Moment.js, et JavaScript-bibliotek, introducerede mange funktioner, der ikke er tilgængelige i det oprindelige Date-objekt. Som et resultat er det blevet det foretrukne bibliotek til at arbejde med datoer og tidspunkter.
For at installere Moment.js med npm skal du køre følgende kommando fra din projektmappe:
npm installere øjeblik
Efter installationen kan du importere Moment.js til dit projekt og udføre operationer med biblioteket:
konst øjeblik = kræve('øjeblik');
konst nu = øjeblik();
konst nuString = nu.format('ÅÅÅÅ-MM-DD TT: mm: ss');
konsol.log(`Den aktuelle dato og tid er ${nowString}`);
Dette kodestykke importerer Moment.js-biblioteket og opretter et øjebliksobjekt ved hjælp af den aktuelle dato og klokkeslæt med øjeblik() fungere. Det viser derefter, hvordan man formaterer det oprettede datoobjekt som en streng med format() metode, som tager et dato/tidsformat som argument.
Du kan også bruge dette bibliotek til at tilføje og trække tidsintervaller fra:
konst addTenMinutes = moment().add(10, 'minutter');
konsol.log(`${addTenMinutes.format('h: mm a')}`);
konst subtractToDays = moment().subtract(2, 'dage');
konsol.log(`${subtractTwoDays.format('dddd, MMMM Gør ÅÅÅÅ')}`);
Programmet logger to variable til konsollen i forskellige formater. Den første, addTenMinutes, indeholder resultatet af tilføjelse af 10 minutter til den aktuelle dato og tid. Sekundet, trække ToDage fra, har den aktuelle dato- og tidsværdi med to dage fratrukket.
Moment.js kan udføre andre operationer som at tjekke for skudår og konvertere fra et datoformat til et andet.
Det er vigtigt at bemærke, at Moment.js ikke længere vedligeholdes af sit kerneudviklerteam. Udviklerne anbefaler at bruge et alternativ som Luxon.js.
Luxon.js er et robust og mere moderne JavaScript-bibliotek til at arbejde med datoer. Et alternativ til Moment.js, det adresserer begrænsninger af det ældre bibliotek som mutabilitet.
Du kan installere Luxon med npm og derefter importere dens Dato tid klasse i dit Node.js-projekt ved hjælp af kræve() fungere:
konst { DateTime } = kræve('luxon');
I Luxon refererer DateTime-objekter til tidsforekomster, der går helt ned til millisekunder.
Du kan oprette nye Dato tid objekter og få adgang til deres komponenter, såsom år, måned, minut og sekund:
konst nu = DatoTid.nu();
konst år = nu.år;
konst minut = nu.minut;
konst sekund = nu.sekund;
Denne kode opretter en ny Dato tid objekt, der repræsenterer den aktuelle dato og klokkeslæt ved hjælp af nu() metode. Den får derefter adgang til den pågældende datos komponenter ved hjælp af år, minut, og anden ejendomme.
En stor forskel mellem Luxon.js og Moment.js er dens uforanderlige karakter. Alle DateTime-objekter er uforanderlige i Luxon, hvilket betyder, at du ikke kan ændre DateTime-egenskaber. I stedet kan du oprette nye DateTime-forekomster fra eksisterende.
For eksempel:
konst nu = DatoTid.nu();
konst i morgen = nu.plus({ dage: 1 });
Denne kode opretter en ny Dato tid objekt navngivet i morgen baseret på nu objekt ved hjælp af plus metode, og giver den en værdi på 1 dag som et argument. Plus-metoden opretter et nyt DateTime-objekt med det angivne antal dage tilføjet til det originale objekt.
En anden fordel ved Luxon.js er dens pålidelige tidszoneunderstøttelse, som er afgørende for at arbejde med datoer og klokkeslæt i moderne webapplikationer. Biblioteket bruger Internationaliserings API i moderne browsere for at give nøjagtig tidszoneunderstøttelse.
En af ulemperne ved Luxon.js er imidlertid dets begrænsede fællesskabsressourcer.
Date-fns er et meget let JavaScript-bibliotek designet til at arbejde med datoer og klokkeslæt. Det bygger på det oprindelige JavaScript-objekt.
Dato-fns bruger funktionelle programmeringsteknikker og inkorporerer en uforanderlig funktion, som gør arbejdet med datoer lettere og reducerer sandsynligheden for fejl i din kode.
Efter installation af date-fns med npm skal du importere pakken til dit program ved hjælp af kræve funktionen:
konst { format, addDays } = kræve('dato-fns');
Dato-fns er modulopbygget. Den indeholder en masse funktioner, som du kan få adgang til ved at destrukturere pakken, som vist i kodeblokken ovenfor. Koden importerer kun formatet og addDays-funktionerne fra date-fns-biblioteket.
Her er et eksempel på, hvordan du bruger begge disse funktioner:
konst i dag = nyDato();
konst formattedDate = format (i dag, 'åååå-MM-dd');
konsol.log (formateret dato);
konst i morgen = format (tilføj dage (i dag, 1), 'åååå-MM-dd');
konsol.log (i morgen);
Dette program demonstrerer brugen af date-fns-biblioteket i JavaScript til at formatere og manipulere datoer.
Det skaber en ny Dato objekt, der repræsenterer den aktuelle dato. Den formaterer den aktuelle dato ved hjælp af format funktion fra date-fns biblioteket.
Den bruger så tilføje Dage funktion til at oprette et nyt Dato-objekt, der repræsenterer morgendagens dato, formaterer det ved hjælp af format funktion, og logger både den aktuelle dato og morgendagens dato til konsollen i "åååå-MM-dd" format.
En ulempe ved at bruge Date-fns er, at det ikke giver tidszoneunderstøttelse. I stedet bruger den et separat bibliotek til at arbejde med tidszoner ved hjælp af hjælpefunktioner.
Day.js, et andet meget let bibliotek, er et godt valg, hvis du leder efter et uforanderligt, mindre, hurtigere alternativ til Moment.js.
Du kan installere Day.js som en pakke i dit JavaScript-projekt ved at køre følgende npm-kommando:
npm installere dayjs
For at importere Day.js til dit projekt efter installationen, kan du bruge følgende kode:
konst dayjs = kræve('dayjs')
Her er nogle grundlæggende funktioner og metoder tilgængelige i Day.js
konst nu = dayjs();
konst dato = dayjs('2023-03-23', 'ÅÅÅÅ-MM-DD');
konst måned = dato.måned();
konst formattedDate = dato.format("MMMM D, ÅÅÅÅ");
konst næste uge = dato.add(1, 'uge');
Ovenstående kode opretter et nyt Day.js-objekt, der repræsenterer den aktuelle dato og klokkeslæt, parser en datostreng med et brugerdefineret format og henter måneden fra dato variabel. Det viser også, hvordan du formaterer og tilføjer til en datoforekomst.
Ligesom Date-fns kan Day.js ikke levere tidszoneunderstøttelse alene. Day.js bruger et plugin-system, hvilket gør det forvirrende at bruge.
Af de dækkede pakker minder Day.js mest om Moment.js. Dette gør det nemmere at skifte mellem de to, hvis du har brug for det.
Valg af det rigtige bibliotek til din app
At vælge det rigtige dato- og klokkeslætbibliotek til din JavaScript-applikation er en vigtig beslutning, som kan have stor indflydelse på kvaliteten og vedligeholdelsen af din kode.
Hvert af de biblioteker, der diskuteres her, har sine styrker og svagheder, så det er vigtigt omhyggeligt at vurdere dine krav, før du træffer en beslutning.