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

166
Vistas
El contador de Javascript no se detiene

para este contador que hice, usé setInterval, y cuando cada dígito es igual a cero, espero que esto borre el intervalo, ¡pero no funciona! ¿Alguien me puede ayudar?

 const counterHTML = document.querySelector("#counter"); const timeString = localStorage.getItem("Time"); function timeToAdd(stringTime) { const timeArray = stringTime.split(":"); const hoursInMiliseconds = timeArray[0] * 60 * 60 * 1000; const minutesInMiliseconds = timeArray[1] * 60 * 1000; const TIME_IN_MILISECONDS = hoursInMiliseconds + minutesInMiliseconds; return TIME_IN_MILISECONDS; } const actualTime = Date.now(); const finalTimeDateObj = new Date(actualTime + timeToAdd(timeString)); const finalTime = finalTimeDateObj.getTime(); const time = (myTimerInterval) => { const timeNow = Date.now(); const diference = finalTime - timeNow; let displayTimeArray = msToTime(diference); console.log(diference); const hours = String(displayTimeArray[0]).padStart(2, "0"); const minutes = String(displayTimeArray[1]).padStart(2, "0"); const seconds = String(displayTimeArray[2]).padStart(2, "0"); if (hours == "00" && minutes == "00" && seconds == "00") { clearInterval(myTimerInterval); } counterHTML.innerText = `${hours}:${minutes}:${seconds}`; }; function msToTime(millis) { let h, m, s; h = Math.floor(millis / 1000 / 60 / 60); m = Math.floor((millis / 1000 / 60 / 60 - h) * 60); s = Math.floor(((millis / 1000 / 60 / 60 - h) * 60 - m) * 60); return [h, m, s]; } var myTimerInterval = setInterval(time, 1000);
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

En primer lugar, veo este problema.

 const time = (myTimerInterval) => { ... if (hours == "00" && minutes == "00" && seconds == "00") { // myTimerInterval === undefined clearInterval(myTimerInterval); } ... }

La función a la que llama setInterval no recibe ningún argumento. myTimerInterval en este contexto no está definido, por lo que clearInterval no funciona.

Intenta eliminar ese argumento

 const time = () => { ... // now myTimerInterval references the global var if (hours == "00" && minutes == "00" && seconds == "00") { clearInterval(myTimerInterval); } ... }
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