Mi código es este:
const nowDate = moment(new Date()).format("DD/MM/YYYY"); let paraRepDate = '01/01/2021'; let calcParaDate = '30/06/2021'; var x = moment(calcParaDate).isBefore(nowDate) console.log(x) // false¿Como es posible?
El formato predeterminado de momentjs es MM/DD/YYYY . En su solución, puede ver información de advertencia en la consola:
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/ para obtener más información.
Tienes que especificar format moment(date, format) . Algo como esto:
const format = 'DD/MM/YYYY'; const nowDate = moment(); const calcParaDate = '30/06/2021'; const isBefore = moment(calcParaDate, format).isBefore(nowDate) console.log(isBefore); <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.1/moment-with-locales.min.js" integrity="sha512-LGXaggshOkD/at6PFNcp2V2unf9LzFq6LE+sChH7ceMTDP0g2kn6Vxwgg7wkPP7AAtX+lmPqPdxB47A0Nz0cMQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> Además, no tiene que pasar new Date() en moment() para la fecha y hora actual.