Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

192
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!