Entonces, tengo dos variables y una función:
function addDays(date, days) { var result = new Date(date); result.setDate(result.getDate() + days); return result; } const dateToCompare=moment.utc(endDate).format('DD-MM-YYYY') const maximum=moment.utc(addDays(new Date(),14)).format('DD-MM-YYYY')Sin embargo, no sé cómo compararlos, ya que ahora están formateados como cadenas, pero al mismo tiempo, la nueva fecha (dateToCompare) no funciona.
Alguien me puede dar una pista?
¿Por qué usa métodos integrados para agregar días cuando usa moment.js? Considerar:
let maximum = moment.utc().add('day',14).format('DD-MM-YYYY')Para establecer una fecha para el comienzo de un día, use el método startOf moment.js :
let maximum = moment.utc().add('day',14).startOf('day') let dateToCompare = moment.utc(endDate).startOf('day')Puede comparar las fechas como cadenas si están formateadas como AAAA-MM-DD, o simplemente dejarlas como objetos de momento y compararlas usando isSame , isAfter , isSameOrBefore , etc.
Al analizar cadenas como en:
const dateToCompare=moment.utc(endDate) siempre debe pasar el formato para analizar a menos que endDate sea un objeto de fecha o momento. new Date(dateToCompare) no funciona porque ¿Por qué Date.parse da resultados incorrectos?
Si lo que está tratando de hacer es quitar el tiempo y simplemente comparar las fechas, no haga una conversión de cadena; simplemente configure la hora, los minutos y los segundos en sus objetos Fecha a cero antes de hacer su comparación de fechas.
let foo = new Date(); console.log(foo);// date includes time foo.setHours(0); foo.setMinutes(0); foo.setSeconds(0); console.log(foo) // date set to midnight (in your timezone)