Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

194
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda