Ga verder dan de ingebouwde datum- en tijdmogelijkheden van JavaScript met een van deze vervangende bibliotheken.

De ingebouwde ondersteuning van JavaScript voor het afhandelen van datums is handig, maar kan onhandig zijn in het gebruik. Complexe bewerkingen zoals tijdzoneconversies en datumnotatie zijn vaak een uitdaging.

Gelukkig zijn er verschillende pakketten beschikbaar die het werken met datums en tijden in JavaScript minder stressvol maken. Hier leert u over enkele van deze pakketten en hoe u aan de slag kunt gaan met het werken aan deze pakketten.

Als het gaat om het werken met datums en tijden, het native JavaScript Date-object heeft een beperkte functionaliteit.

Moment.js, een JavaScript-bibliotheek, introduceerde veel functies die niet beschikbaar waren in het native Date-object. Als gevolg hiervan is het de go-to-bibliotheek geworden voor het werken met datums en tijden.

Om Moment.js met npm te installeren, voert u de volgende opdracht uit vanuit uw projectdirectory:

npm installeren moment
instagram viewer

Na installatie kunt u Moment.js in uw project importeren en bewerkingen uitvoeren met de bibliotheek:

const even = vereisen('moment');
const nu = ogenblik();
const nowString = nu.format('JJJJ-MM-DD UU: mm: ss');

troosten.log(`De huidige datum en tijd is ${nowString}`);

Dit codefragment importeert de Moment.js-bibliotheek en maakt een moment-object met de huidige datum en tijd met de moment() functie. Vervolgens wordt gedemonstreerd hoe het gemaakte datumobject moet worden opgemaakt als een tekenreeks met de formaat() methode, die een datum-/tijdnotatie als argument gebruikt.

U kunt deze bibliotheek ook gebruiken om tijdsintervallen toe te voegen en af ​​te trekken:

const addTenMinutes = moment().add(10, 'minuten');
troosten.log(`${addTenMinutes.format('h: mm een')}`);

const aftrekkenTwoDays = moment().aftrekken(2, 'dagen');
troosten.log(`${subtractTwoDays.format('dddd, MMMM doen JJJJ')}`);

Het programma logt twee variabelen naar de console, in verschillende formaten. De eerste, voeg Tien Minuten toe, bevat het resultaat van het optellen van 10 minuten bij de huidige datum en tijd. De seconde, trekTwoDays af, heeft de huidige datum- en tijdwaarde met twee dagen ervan afgetrokken.

Moment.js kan andere bewerkingen uitvoeren, zoals het controleren op schrikkeljaren en het converteren van het ene datumformaat naar het andere.

Het is belangrijk op te merken dat Moment.js niet langer wordt onderhouden door het kernontwikkelaarsteam. De ontwikkelaars adviseren om een ​​alternatief zoals Luxon.js te gebruiken.

Luxon.js is een robuuste en modernere JavaScript-bibliotheek voor het werken met datums. Een alternatief voor Moment.js, het pakt beperkingen van de oudere bibliotheek aan, zoals veranderlijkheid.

U kunt Luxon met npm installeren en vervolgens importeren Datum Tijd class in uw Node.js-project met behulp van de vereisen() functie:

const { DatumTijd } = vereisen('luxon');

In Luxon verwijzen DateTime-objecten naar tijdinstanties die helemaal teruglopen tot milliseconden.

U kunt nieuwe maken Datum Tijd objecten en krijg toegang tot hun componenten, zoals het jaar, de maand, de minuut en de seconde:

const nu = DatumTijd.nu();
const jaar = nu.jaar;
const minuut = nu.minuut;
const tweede = nu.tweede;

Deze code maakt een nieuw Datum Tijd object dat de huidige datum en tijd vertegenwoordigt met behulp van de nu() methode. Vervolgens krijgt het toegang tot de componenten van die datum met behulp van de jaar, minuut, En seconde eigenschappen.

Een groot verschil tussen Luxon.js en Moment.js is het onveranderlijke karakter. Alle DateTime-objecten zijn onveranderlijk in Luxon, wat betekent dat u DateTime-eigenschappen niet kunt wijzigen. In plaats daarvan kunt u nieuwe DateTime-exemplaren maken op basis van bestaande.

Bijvoorbeeld:

const nu = DatumTijd.nu();
const morgen = nu.plus({ dagen: 1 });

Deze code maakt een nieuw Datum Tijd voorwerp genoemd morgen gebaseerd op de nu voorwerp, met behulp van de plus methode, waarbij een waarde van 1 dag als argument wordt doorgegeven. De plus-methode maakt een nieuw DateTime-object met het opgegeven aantal dagen toegevoegd aan het oorspronkelijke object.

Een ander voordeel van Luxon.js is de betrouwbare tijdzone-ondersteuning, die essentieel is voor het werken met datums en tijden in moderne webapplicaties. De bibliotheek gebruikt de Internationaliserings-API in moderne browsers om nauwkeurige tijdzone-ondersteuning te bieden.

Een van de nadelen van Luxon.js zijn echter de beperkte gemeenschapsmiddelen.

Date-fns is een zeer lichtgewicht JavaScript-bibliotheek die is ontworpen om met datums en tijden te werken. Het bouwt voort op het oorspronkelijke JavaScript-object.

Datum-fns gebruikt functionele programmeertechnieken en bevat een onveranderlijke functie, die het werken met datums eenvoudiger maakt en de kans op bugs in uw code verkleint.

Na het installeren van date-fns met npm, importeert u het pakket in uw programma met behulp van de functie vereisen:

const { format, addDays } = vereisen('date-fns');

Date-fns is modulair. Het bevat veel functies waartoe u toegang hebt door het pakket te destructureren, zoals weergegeven in het bovenstaande codeblok. De code importeert alleen de format- en addDays-functies uit de date-fns-bibliotheek.

Hier is een voorbeeld van het gebruik van beide functies:

const vandaag = nieuwDatum();
const formattedDate = formaat (vandaag, 'jjjj-MM-dd');
troosten.log (geformatteerde datum);

const morgen = formaat (addDays (vandaag, 1), 'jjjj-MM-dd');
troosten.log (morgen);

Dit programma demonstreert het gebruik van de date-fns-bibliotheek in JavaScript om datums te formatteren en te manipuleren.

Het creëert een nieuwe Datum object dat de huidige datum vertegenwoordigt. Het formatteert de huidige datum met behulp van de formaat functie uit de date-fns-bibliotheek.

Het gebruikt dan de addDagen functie om een ​​nieuw Date-object te maken dat de datum van morgen vertegenwoordigt, formatteert het met behulp van de formaat functie, en logt zowel de huidige datum als de datum van morgen naar de console in "jjjj-MM-dd" formaat.

Een nadeel van het gebruik van Date-fns is dat het geen tijdzone-ondersteuning biedt. In plaats daarvan gebruikt het een aparte bibliotheek om met tijdzones te werken met hulpfuncties.

Day.js, een andere zeer lichtgewicht bibliotheek, is een goede keuze als u op zoek bent naar een onveranderlijk, kleiner en sneller alternatief voor Moment.js.

U kunt Day.js als een pakket in uw JavaScript-project installeren door de volgende npm-opdracht uit te voeren:

npm installeren dagjs

Om Day.js na installatie in uw project te importeren, kunt u de volgende code gebruiken:

const dagjs = vereisen('dayjs')

Hier zijn enkele basisfuncties en methoden die beschikbaar zijn in Day.js

const nu = dagjs();

const datum = dagjs('2023-03-23', 'JJJJ-MM-DD');

const maand = datum.maand();

const formattedDate = datum.format('MMMM D, JJJJ');

const nextWeek = datum.toevoegen(1, 'week');

De bovenstaande code maakt een nieuw Day.js-object dat de huidige datum en tijd vertegenwoordigt, parseert een datumtekenreeks met een aangepast formaat en haalt de maand uit de datum variabel. Het laat ook zien hoe u een datuminstantie opmaakt en toevoegt.

Net als Date-fns kan Day.js zelf geen tijdzone-ondersteuning bieden. Day.js gebruikt een plug-insysteem, waardoor het verwarrend is om te gebruiken.

Van de gedekte pakketten lijkt Day.js het meest op Moment.js. Dit maakt het gemakkelijker om tussen de twee te schakelen als dat nodig is.

De juiste bibliotheek kiezen voor uw app

Het kiezen van de juiste datum- en tijdbibliotheek voor uw JavaScript-toepassing is een belangrijke beslissing die een grote impact kan hebben op de kwaliteit en onderhoudbaarheid van uw code.

Elk van de hier besproken bibliotheken heeft zijn sterke en zwakke punten, dus het is belangrijk om uw vereisten zorgvuldig te evalueren voordat u een beslissing neemt.