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

98
Vistas
Hacer una actualización automática de reloj usando setInterval

quería construir un reloj y mi único problema aquí es que setInterval básicamente no funciona. Me estoy perdiendo de algo

 const timer = document.getElementById("container") let currentTime = new Date() let hours = currentTime.getHours() let minutes = currentTime.getMinutes() let seconds = currentTime.getSeconds() function time () { let hoursIf = hours.toString().length==1 ? "0"+hours : hours let minutesIf = minutes.toString().length==1 ? "0"+ minutes : minutes let secondsIf = seconds.toString().length==1 ? "0" +seconds : seconds timer.textContent = `${hoursIf}:${minutesIf}:${secondsIf}` } time() let run = setInterval(time, 1000)
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Funciona, confía en mí. El problema es la asignación en:

 let hours = currentTime.getHours() let minutes = currentTime.getMinutes() let seconds = currentTime.getSeconds()

Está asignando tiempo una vez al principio y no verifica los valores actualizados más adelante. Si pusiera eso en su función de tiempo, funcionaría correctamente. Algo como esto:

 function time () { let currentTime = new Date() let hours = currentTime.getHours() let minutes = currentTime.getMinutes() let seconds = currentTime.getSeconds() let hoursIf = hours.toString().length==1 ? "0"+hours : hours let minutesIf = minutes.toString().length==1 ? "0"+ minutes : minutes let secondsIf = seconds.toString().length==1 ? "0" +seconds : seconds timer.textContent = `${hoursIf}:${minutesIf}:${secondsIf}` } time() let run = setInterval(time, 1000)
about 4 years ago · Juan Pablo Isaza Denunciar

0

No estás actualizando tus variables. Los tiene como globales, pero nunca actualiza sus valores, por lo que el método "tiempo" sigue usando los mismos valores.

 let currentTime = new Date() let hours = currentTime.getHours() let minutes = currentTime.getMinutes() let seconds = currentTime.getSeconds()

Estos deben configurarse en su método o al menos actualizarse a los valores actuales. De lo contrario, simplemente vuelve a mostrar la misma hora cada time se ejecuta.

Si coloca un "Console.log" en su método, apuesto a que verá que se ejecuta, simplemente no actualiza la hora como esperaba.

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