Comparaison de dates sous forme de chaînes en JavaScript
Supposons que nous ayons deux dates dans le format texte suivant :
let date1 = '2020-12-01';
let date2 = '2019-12-01';
Dans ce cas, il est possible de comparer ces dates et de savoir laquelle est la plus grande :
console.log(date1 > date2); // affichera true
Comment cette comparaison de dates se déroule-t-elle ? Le fait est que nos dates sont des chaînes et JavaScript les compare comme des chaînes. C'est-à-dire qu'il compare d'abord les premiers caractères des deux dates : s'ils sont identiques, alors JavaScript compare les deuxièmes caractères, et ainsi de suite, jusqu'à ce qu'il trouve une différence. Grâce au fait que dans notre format, l'année est placée en premier, puis le mois, puis le jour, une telle comparaison est possible.
Le fait est que si le chiffre de la première année s'avère plus grand que le chiffre de la deuxième année, cela signifie qu'il n'a déjà plus d'importance ce qu'il en est des mois et des jours - la première année est définitivement plus grande. Si les années coïncident, alors la date la plus grande sera celle dont le mois est le plus grand. Et si les mois coïncident également, alors la date la plus grande sera celle dont le jour est le plus grand. Eh bien, et si les jours sont identiques, alors les dates sont égales.
Il est également important que les dates soient dans le même format. Dans notre cas, les séparateurs des parties de la date sont des tirets. Ce n'est bien sûr pas une obligation. Par exemple, on peut mettre des points :
let date1 = '2020.12.01';
let date2 = '2019.12.01';
Ou même supprimer les séparateurs :
let date1 = '20201201';
let date2 = '20191201';
L'essentiel, pour que la comparaison soit correcte, est que le placement soit le suivant : d'abord l'année, puis le mois, puis le jour.
Écrivez un code qui comparera les deux dates ci-dessous et affichera un message indiquant laquelle est la plus grande :
let date1 = '2020-11-30';
let date2 = '2020-12-01';