TypeScript:
Sammenlikning av to datoer
How to: (Hvordan:)
// Lag to datoobjekter
let date1 = new Date('2023-01-01');
let date2 = new Date('2023-12-31');
// Sammenlign datoer
if (date1 < date2) {
console.log('Date1 kommer før Date2.');
} else if (date1 > date2) {
console.log('Date1 kommer etter Date2.');
} else {
console.log('Datoene er de samme.');
}
// Formater og sammenlign som strenger
let isoDate1 = date1.toISOString().substring(0, 10);
let isoDate2 = date2.toISOString().substring(0, 10);
if (isoDate1.localeCompare(isoDate2) < 0) {
console.log('ISO Date1 kommer før ISO Date2.');
} else if (isoDate1.localeCompare(isoDate2) > 0) {
console.log('ISO Date1 kommer etter ISO Date2.');
} else {
console.log('ISO datoene er de samme.');
}
Sample output:
Date1 kommer før Date2.
ISO Date1 kommer før ISO Date2.
Deep Dive (Dypdykk)
Å sammenligne datoer i TypeScript kan gjøres direkte fordi JavaScripts Date
-objekter kan sammenlignes med vanlige operators som <
og >
. Dette er mulig siden Date
-objekter internt representerer tidspunkter som antall millisekunder siden et referansepunkt (1. januar 1970 UTC).
Alternativt kan man bruke metoden getTime()
for å hente det numeriske tidsstempelet og sammenligne disse verdiene. Eller, for lesbarhet, kan datoene konverteres til ISO-strenger og sammenlignes leksikografisk med localeCompare
.
Det er verdt å merke seg at tidssoneforskjeller kan påvirke sammenligningsresultatet, og det bør tas hensyn til om applikasjonen er tidssone-sensitiv.
See Also (Se Også)
- MDN Web Docs om
Date
: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date - TypeScript Handbook: https://www.typescriptlang.org/docs/handbook/intro.html
- Date-fns biblioteket, et moderne verktøysett for å jobbe med datoer: https://date-fns.org/
- Moment.js, et eldre, men fortsatt populært bibliotek for dato-manipulering: https://momentjs.com/