Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

193
Vistas
El objeto de fecha JS calcula si el tiempo de envío es inferior a una hora

Tengo un problema en el que no estoy seguro de cómo calcular si es una hora o menos entre una fecha de envío y la hora actual usando el objeto JS Date. lo que he hecho hasta ahora es convertir la cadena de entidad.dispatchDate en un objeto de fecha, sin embargo, este caso que he escrito hasta ahora devuelve verdadero siempre que el objeto de fecha de fecha de hoy sea igual o mayor que la fecha de envío. Lo que creo que tengo que hacer es, en primer lugar, no usar 1 hora sino minutos, ya que necesito dar cuenta de cada escenario que se encuentra dentro de esa hora, por ejemplo, si es una hora antes, 15 minutos o 30 minutos para regresar verdadero. Lo que he escrito hasta ahora:

 // OPTIONS const hoursBeforeSendout = 1; // END OF OPTIONS if(!entity.dispatchDate) { return false; } var sendDate = new Date(Date.parse(entity.dispatchDate)); Date.prototype.addHours = function(h) { this.setTime(this.getTime() + (h*60*60*1000)); return this; } var todaysDate = new Date(); todaysDate.addHours(hoursBeforeSendout); if(todaysDate >= sendDate) { return true; } return false;

Agradecería cualquier aporte aquí sobre cuál sería el mejor enfoque

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Sugeriría simplemente restar la fecha actual (usando Date.now()) de la fecha de envío.

Si esto está por debajo de la duración del umbral, es 'vencido' o 'cerrado':

 function isDispatchDateClose(dispatchDate, thresholdMs = 3600 * 1000) { if (!dispatchDate) { return false; } const timeToDispatchDateMilliseconds = Date.parse(dispatchDate) - Date.now(); return (timeToDispatchDateMilliseconds <= thresholdMs); } let dispatchDates = [0, 30, 45, 90, 120].map(offsetMinutes => new Date(Date.now() + offsetMinutes * 60000).toLocaleString('sv')); console.log('Dispatch Date', '\t\t', 'Is Close ( < 1 hr to go)'); for(let dispatchDate of dispatchDates) { console.log(dispatchDate, '\t', isDispatchDateClose(dispatchDate)) }
 .as-console-wrapper { max-height: 100% !important; top: 0; }

about 4 years ago · Juan Pablo Isaza Denunciar

0

Si todo lo que desea es saber si el valor de dispatchDate está dentro de (menos de) 1 hora a partir de ahora, hay algunas formas de hacerlo que son bastante simples.

El método más simple probablemente sería (actualizado según el comentario de RobG :

 return new Date() - sendDate.getTime() >= 3600000;

Dependiendo de si necesita o no flexibilidad adicional, también puede obtener el tiempo restante de diferentes formas y decidir qué hacer a partir de ahí:

 // OPTIONS const hoursBeforeSendout = 1; // END OF OPTIONS if(!entity.dispatchDate) { return false; } var sendDate = new Date(Date.parse(entity.dispatchDate)); let _TimeRemaining = function(d) { let timeRemaining = Math.floor((d.getTime() - new Date().getTime()) / 1000); return {"hours": Math.floor(timeRemaining / 60 / 60), "minutes": Math.floor(timeRemaining / 60), "seconds": timeRemaining} } console.log(_TimeRemaining(sendDate)["hours"]); // returns the hours remaining console.log(_TimeRemaining(sendDate)["minutes"]); // returns the minutes remaining console.log(_TimeRemaining(sendDate)["seconds"]); // returns the seconds remaining return _TimeRemaining(sendDate)["hours"] <= 0; // returns true if less than 1 hour

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda