Comparación de cadenas de fechas en JavaScript
Supongamos que tenemos dos fechas en el siguiente formato de texto:
let date1 = '2020-12-01';
let date2 = '2019-12-01';
En tal caso, es posible comparar estas fechas y averiguar cuál de ellas es mayor:
console.log(date1 > date2); // mostrará true
¿Cómo se realiza la comparación de estas fechas? El caso es que nuestras fechas son cadenas y JavaScript las compara como cadenas. Es decir, primero compara los primeros caracteres de las dos fechas: si son iguales, entonces JavaScript compara los segundos caracteres, y así sucesivamente, hasta que encuentre una diferencia. Gracias a que en nuestro formato la fecha tiene primero el año, luego el mes y luego el día, es posible tal comparación.
El caso es que si el dígito del primer año resulta ser mayor que el dígito del segundo año, entonces ya no importa lo que pase con los meses y los días: el primer año es definitivamente mayor. Si los años coinciden, será mayor la fecha que tenga el mes mayor. Y si los meses también coinciden, será mayor la fecha que tenga el día mayor. Bueno, y si los días también son iguales, entonces las fechas son iguales.
También es importante que las fechas estén en el mismo formato. En nuestro caso, los separadores de las partes de la fecha son guiones. Esto, por supuesto, no es obligatorio. Por ejemplo, se pueden usar puntos:
let date1 = '2020.12.01';
let date2 = '2019.12.01';
O incluso eliminar los separadores:
let date1 = '20201201';
let date2 = '20191201';
Lo principal, para que la comparación sea correcta, es que el orden debe ser el siguiente: primero el año, luego el mes, luego el día.
Escriba un código que compare las dos fechas provistas a continuación y muestre un mensaje indicando cuál de ellas es mayor:
let date1 = '2020-11-30';
let date2 = '2020-12-01';