Sammenligning af datostrenge i JavaScript
Lad os sige, at vi har to datoer i følgende tekstformat:
let date1 = '2020-12-01';
let date2 = '2019-12-01';
I dette tilfælde kan vi sammenligne disse datoer og finde ud af, hvilken af dem der er større:
console.log(date1 > date2); // vil udskrive true
Hvordan foregår sammenligningen af disse datoer? Faktum er, at vores datoer er strenge, og JavaScript sammenligner dem som strenge. Det betyder, at det først sammenligner de første tegn i de to datoer: hvis de er ens, sammenligner JavaScript de andet tegn, og så videre, indtil den finder en forskel. På grund af at vores datoformat har året først, derefter måneden, og derefter dagen, er en sådan sammenligning mulig.
Pointen er, at hvis det første ciffer i det første år er større end cifferet i det andet år, betyder det allerede, at det ikke betyder noget, hvad der sker med måneder og dage - det første år er bestemt større. Hvis årene derimod er de samme, vil den dato være større, som har den større måned. Og hvis månederne også er de samme, vil den dato være større, som har den større dag. Nå, og hvis dagene også er ens, så er datoerne lige store.
Det er også vigtigt, at datoerne er i samme format. I vores tilfælde er separatorerne for datoens dele bindestreger. Dette er selvfølgelig ikke et krav. For eksempel kan man sætte punktummer:
let date1 = '2020.12.01';
let date2 = '2019.12.01';
Eller helt fjerne separatorerne:
let date1 = '20201201';
let date2 = '20191201';
Det vigtigste er, at for at sammenligningen skal være korrekt, skal placeringen være som følger: først år, derefter måned, derefter dag.
Skriv kode, der sammenligner de to nedenstående datoer og udskriver en besked om, hvilken af dem der er større:
let date1 = '2020-11-30';
let date2 = '2020-12-01';