Stringvergelyking van datums in JavaScript
Gestel ons het twee datums in die volgende teksformaat:
let date1 = '2020-12-01';
let date2 = '2019-12-01';
In so 'n geval kan ons hierdie datums vergelyk en uitvind watter een groter is:
console.log(date1 > date2); // sal true uitdruk
Hoe vind hierdie vergelyking van datums plaas? Die feit is dat ons datums strings voorstel en JavaScript vergelyk hulle as strings. Dit beteken dit vergelyk eers die eerste karakters van die twee datums: as hulle dieselfde is, vergelyk JavaScript die tweede karakters, en so aan, totdat dit 'n verskil vind. Dankie daaraan dat in ons datumformaat die jaar eerste geleë is, dan die maand, en dan die dag, is so 'n vergelyking moontlik.
Die feit is dat as die syfer van die eerste jaar groter blyk te wees as die syfer van die tweede jaar, beteken dit reeds nie meer wat met die maande en dae - die eerste jaar is beslis groter. As die jare ooreenstem, dan sal die datum groter wees waarvan die maand groter is. En as die maande ook ooreenstem, dan sal die datum groter wees waarvan die dag groter is. Wel, en as die dae ook dieselfde is, dan is die datums gelyk.
Dit is ook belangrik dat die datums in een formaat is. In ons geval is die skeiers van die datumdele koppelteke. Dit is natuurlik nie verpligtend nie. Byvoorbeeld, ons kan punte sit:
let date1 = '2020.12.01';
let date2 = '2019.12.01';
Of selfs die skeiers verwyder:
let date1 = '20201201';
let date2 = '20191201';
Die hoofsaak is dat, vir die vergelyking om korrek te wees, die rangskikking soos volg moet wees: eers die jaar, dan die maand, dan die dag.
Skryf 'n kode wat die twee hieronder gegewe datums sal vergelyk en 'n boodskap sal uitdruk oor watter een van hulle groter is:
let date1 = '2020-11-30';
let date2 = '2020-12-01';