Estoy tratando de establecer la condición a continuación para ejecutar Condition1 si new Date(visitationDate) es igual a Date.now() .
En la interfaz, la fecha de visitación ingresa como Thu Nov 11 2021 13:52:33 GMT+0100 (West Africa Standard Time) y la convierto con una función al formato 2021-11-11T13:00:00.000Z antes de enviarlo a el back-end Estoy usando la condición de fecha en mi pregunta en el backend. Puedo revertir la conversión en la interfaz si resuelve mi problema.
Este es mi código actual utilizado en el backend
if (new Date(visitationDate) == Date.now()) { Condition1 } else { Condition2 }Mi pregunta es cómo puedo ejecutar Condition2 si la fecha de visita es menor que Date.now() o Date.now() es mayor que visitationDate. Quiero ejecutar Condition1 solo si visitationDate es la fecha actual o igual a Date.now() en una ventana de 24 horas.
Según una respuesta enviada anteriormente que se eliminó, estoy usando el método getHours() para normalizar la fecha y verificar si la diferencia es igual a cero. Probé con la fecha actual y devuelve verdadero. Cuando probé con la fecha anterior y la fecha futura, devuelve falso. Tenga en cuenta que los usuarios de mi código tienen la misma hora local.
let d = new Date(visitationDate); d.setHours(15, 0, 0, 0) let now = new Date(); now.setHours(15, 0, 0, 0) if (now-d == 0) { Condition1 } else { Condition2 }Parece que desea comparar fechas sin la parte de la hora, así que convierta la marca de tiempo de entrada en solo una fecha y compárela con la fecha local actual, por ejemplo
// Convert standard toString format to YYYY-MM-DD without changing the date function reformatDate(s) { // Parse string as UTC+0 let d = new Date(s.replace(/GMT\+.*/,'GMT+0000')); // Return date only in ISO 8601 format return d.toISOString().substring(0,10); } // Return date as local YYYY-MM-DD function formatDate(d) { return d.toLocaleDateString('en-CA'); } let ts = 'Thu Nov 11 2021 13:52:33 GMT+0100 (West Africa Standard Time)'; // Date with some random time let d = new Date(2021,10,11,23,59,59); console.log(formatDate(d) + ' : ' + (reformatDate(ts) == formatDate(d))); // Compare to today d = new Date(); console.log(formatDate(d) + ' : ' + (reformatDate(ts) == formatDate(d)));