Quiero comparar dos fechas y mi formato de fecha es DD-MM-YYYY
pero no sé por qué mi salida devuelve false
cuando comparo mis fechas.
Ejemplo 1
const date1 = '30-06-2021'; const date2 = '10-01-2022'; const result = moment(date1) < moment(date2); // return false, should return true
ejemplo 2
const date1 = '30-06-2021'; const date2 = '10-01-2022'; const result = moment(date1).isBefore(date2); // return false, should return true
Hay dos problemas allí:
Está esperando el moment
para adivinar el formato de sus fechas, pero no puede hacerlo de manera confiable. Proporcione siempre una cadena de formato si su cadena no está en formato RFC2822 o ISO-8601. moment
mismo le advierte sobre hacer eso en la versión de desarrollo de la biblioteca:
Advertencia de obsolescencia: el valor proporcionado no está en un formato RFC2822 o ISO reconocido. la construcción de momentos recurre a js Date(), que no es confiable en todos los navegadores y versiones. Se desaconsejan los formatos de fecha que no sean RFC2822/ISO. Consulte http://momentjs.com/guides/#/warnings/js-date/
<
no se puede usar para comparar objetos de manera significativa. Si desea saber si una fecha es anterior a otra fecha, utilice el método isBefore
.
Por ejemplo:
const date1 = "30-06-2021"; const date2 = "10-01-2022"; const format = "DD-MM-YYYY"; const result = moment(date1, format).isBefore(moment(date2, format));
const date1 = "30-06-2021"; const date2 = "10-01-2022"; const format = "DD-MM-YYYY"; const result = moment(date1, format).isBefore(moment(date2, format)); console.log(result);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment.min.js"></script>