Estoy tratando de comparar un objeto de momento (hace 30 días) con una marca de tiempo dada. Tanto isBefore como isAfter devuelven false. No estoy seguro de dónde me estoy equivocando.
var startdate = moment.utc().subtract(30,'days') var RequestedDate = moment.utc('14/12/2021, 11:26') var isbefore = startdate.isBefore(RequestedDate) var isafter = startdate.isAfter(RequestedDate) console.log(isafter) console.log(isbefore)La fecha solicitada no está en el formato correcto, según el error emitido en un violín de su código :
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.
Si puede usar el constructor "Fecha + Formato" , entonces puede analizar algo como esto :
var RequestedDate = moment.utc('14/12/2021, 11:26', 'D/M/Y, H:m', true) // "Tue Dec 14 2021 11:26:00 GMT+0000"Tenga en cuenta el uso del modo estricto, como en los documentos:
Puede obtener resultados inesperados al analizar tanto la fecha como la hora. Es posible que el siguiente ejemplo no se analice como espera:
moment('24/12/2019 09:15:00', "DD MM YYYY hh:mm:ss");