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

93
Vistas
Making a clock autorefresh using setInterval

i wanted to build a clock and my only problem here is that setInterval basically does not work. Am I missing something

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

It works, trust me. The problem is the assigment in:

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

You're assigning time once at the start, and don't check for updated values later. If you'd put that in your time function it would work properly. Something like this:

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

You aren't updating your variables. You have them as globals, but never update their values, so the method "time" keeps using the same values.

let currentTime = new Date()

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

These should be set in your method or at least updated to current values. Otherwise you are simply re-displaying the same time every time executes.

If you put a "Console.log" in your method, I'd bet you'd see that it does run, it just doesn't update the time as you expect.

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