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

189
Vistas
Time returns always 0 when using a custom date

I need to start a time from a start date for n number of days. When I use date (now) inside set interval function it works but if I use the date from parameter then the time is always 0.

let startDate = new Date().getTime();

startTimer(days,startDate) {

  let today = new Date().getTime();
  let countDown = this.addDays(today,days);
  let countDown2 = new Date(countDown).getTime();

  let x = setInterval(() => {

  let now = new Date().getTime();
  //let distance = countDown2 - startDate; //not working when i use startDate here
  let distance = countDown2 - now; //working when i use 'now'
  let hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
  this.displayDate = hours + "h";

  if(distance < 0) {
    clearInterval(x);
    this.displayDate = "Expired";
     }
   })    
}

  addDays(date, days) {
   var result = new Date(date);
   result.setDate(result.getDate() + days);
  return result;
 }

when i use startDate as 10 from parameter, the o/p is 10d: 0h: 0m: 0s (time always 0)

when i use any date other than now inside setinterval time in o/p will be 0 say 10d: 0h: 0m: 0s

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

0

remove the init of x on the interval, and make sure you add a time that the interval is base off at the end of it...

setInterval(() =>

// end of interval
}, 1000) // 1000ms = 1 second

and the function needs to return something... in this example i included the returns in a console.log() just to visualize it but removing that is easy.

if(distance < 0) {
  clearInterval(x);
  return console.log("Expired")   
} else {
  return console.log(count_days + "d: " + hours + "h: " + minutes + "m: " + seconds + "s")
}  

after those changes you should be able to call the startTimer() function and it should work just fine...

startTimer(10, startDate)

/* OUTPUT
9d: 23h: 59m: 58s
9d: 23h: 59m: 57s
9d: 23h: 59m: 56s
9d: 23h: 59m: 55s
9d: 23h: 59m: 54s
*/
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