Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

121
Visualizações
Hora de JavaScript. Agregar +1 a la hora actual

Hola, quiero que mi temporizador continúe desde la hora actual cada segundo. Manteniendo el mismo formato de hora. Acabo de agregar un código simple para verificar.

Código

 <div id="output"></div> <script> const output = document.querySelector("#output"); let time = "12:48:39" let seconds = 0; function timer() { seconds++; let hours = Math.floor(seconds / 3600); // Get minutes let minutes = Math.floor((seconds - hours * 3600) / 60); // Get seconds let secs = Math.floor(seconds % 60); if (hours < 10) { hours = `0${hours}`; } if (minutes < 10) { minutes = `0${minutes}`; } if (secs < 10) { secs = `0${secs}`; } return `${hours}:${minutes}:${secs}`; } setInterval(() => { output.innerHTML = parseInt(time + timer()) }, 1000) </script>
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Aquí está la solución de trabajo.

Tuviste que dividir tu cadena que representa el tiempo, para que puedas contar la cantidad de segundos que realmente tuviste.

Nota: he usado esto como ayuda para la transición de HH:MM:SS a números.

Y, al final, solo necesita obtener la cadena timer() , no es necesario escribir tanto el tiempo como el elemento de retorno de la función del temporizador.

 <div id="output"></div> <script> const output = document.querySelector("#output"); let time = "12:48:39" let a = time.split(':'); let seconds = (+a[0]) * 60 * 60 + (+a[1]) * 60 + (+a[2]); ; let ti = ""; function timer() { seconds++; let hours = Math.floor(seconds / 3600); // Get minutes let minutes = Math.floor((seconds - hours * 3600) / 60); // Get seconds let secs = Math.floor(seconds % 60); if (hours < 10) { hours = `0${hours}`; } if (minutes < 10) { minutes = `0${minutes}`; } if (secs < 10) { secs = `0${secs}`; } ti = `${hours}:${minutes}:${secs}`; return ti; } setInterval(() => { output.innerHTML = timer(); }, 1000) </script>

about 4 years ago · Juan Pablo Isaza Relatório

0

No estoy muy seguro de lo que estás preguntando aquí... ¿por qué el código no funciona?

Explicación:

En primer lugar, estoy bastante seguro de que al menos parte del problema es el hecho de que time y la salida de timer() son cadenas que está concatenando y luego intentando analizar como números .

Cuando haces time + timer() es lo mismo que hacer "12:48:39" + timer() y, por ejemplo, si la salida del temporizador es 0:01:12 (segundos = 72), entonces es lo mismo que hacer:

 "12:48:39" + "0:01:12"

Lo que solo generará "12:48:390:01:12" porque concatenará las dos cadenas.

Cuando pasas eso a parseInt() , esencialmente estás haciendo:

 parseInt("12:48:390:01:12")

parseInt() no sabrá qué hacer con eso, ya que no es un número simple, por lo que solo analizará el principio y desechará el resto; devolverá 12 , el primer número.

Solución:

Entonces... si su objetivo es agregar dos veces, le recomiendo usar Date , que le permite almacenar fechas y horas correctamente. Ver: Agregar dos fechas y horas juntas en javascript

Espero que esto ayude :)

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda