Jämförelse av datumsträngar i JavaScript
Låt oss säga att vi har två datum i följande textformat:
let date1 = '2020-12-01';
let date2 = '2019-12-01';
I detta fall kan vi jämföra dessa datum och ta reda på vilket datum som är större:
console.log(date1 > date2); // kommer att skriva ut true
Hur går jämförelsen av dessa datum till? Anledningen är att våra datum är strängar och JavaScript jämför dem som strängar. Det betyder att det först jämför de första tecknen i de två datumen: om de är lika, jämför JavaScript de andra tecknen, och så vidare, tills den hittar en skillnad. På grund av att i vårt datumformat först kommer året, sedan månaden och sedan dagen, är en sådan jämförelse möjlig.
Poängen är att om siffran för det första året är större än siffran för det andra året, spelar det redan ingen roll vad som händer med månaderna och dagarna - det första året är definitivt större. Om åren är lika, blir det datumet med den större månaden som är större. Och om månaderna också är lika, blir det datumet med den större dagen som är större. Tja, och om dagarna också är lika, är datumen lika.
Det är också viktigt att datumen är i samma format. I vårt fall är avgränsaren för datumdelar bindestreck. Detta är naturligtvis inte nödvändigt. Till exempel kan man sätta punkter:
let date1 = '2020.12.01';
let date2 = '2019.12.01';
Eller helt enkelt ta bort avgränsarna:
let date1 = '20201201';
let date2 = '20191201';
Det viktigaste för att jämförelsen ska vara korrekt är att placeringen är följande: först år, sedan månad, sedan dag.
Skriv kod som jämför de två datumen nedan och skriver ut ett meddelande om vilket som är större:
let date1 = '2020-11-30';
let date2 = '2020-12-01';