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

183
Vistas
El tiempo devuelve siempre 0 cuando se usa una fecha personalizada

Necesito comenzar una hora a partir de una fecha de inicio durante n número de días. Cuando uso la fecha (ahora) dentro de la función de intervalo establecido, funciona, pero si uso la fecha desde el parámetro, el tiempo siempre es 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; }

cuando uso startDate como 10 del parámetro, el o/p es 10d: 0h: 0m: 0s (tiempo siempre 0)

cuando uso cualquier fecha que no sea ahora dentro de setinterval time en o/p será 0 digamos 10d: 0h: 0m: 0s

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

0

elimine el inicio de x en el intervalo, y asegúrese de agregar un tiempo en el que el intervalo se base al final del mismo ...

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

y la función necesita devolver algo... en este ejemplo, incluí las devoluciones en un archivo console.log() solo para visualizarlo, pero eliminarlo es fácil.

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

después de esos cambios, debería poder llamar a la función startTimer() y debería funcionar bien...

 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