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

102
Vistas
Temporizador de cuenta regresiva cada 15 minutos en la hora

Tengo un seminario web que se ejecuta cada 15 minutos de cada hora del día (EG: 11:00, 11:15, 11:30 y 11:45).

Me gustaría un temporizador de cuenta regresiva que muestre los minutos restantes hasta la próxima hora de inicio y todo lo que puedo encontrar después de días de búsquedas y tratando de resolver esto por mí mismo es una cuenta regresiva por hora.

Mi pregunta es, ¿cómo actualizo este código para que sea cada 15 minutos, no cada 60?

 <script> /* Return minutes and seconds to next hour ** @returns {Object} minutes: minutes remaining ** seconds: seconds remaining */ function getTimeRemaining() { var t = Date.now(); var seconds = (60 - Math.floor(t % 6e4 / 1e3)) % 60; var minutes = 60 - Math.ceil(t % 3.6e6 / 6e4) + (seconds? 0:1); return { 'minutes': ('0' + minutes).slice(-2), 'seconds': ('0' + seconds).slice(-2) }; } // Simple show remaining function function showRemaining() { var r = getTimeRemaining(); document.getElementById('clock').textContent = (r.minutes + ':' + ('0' + r.seconds).slice(-2)); // Run again just after next full second setTimeout(showRemaining, 1020 - (Date.now() % 1000)); } showRemaining(); </script>
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Esa solución parece demasiado complicada y definitivamente debería usar setInterval para una tarea en la que tiene que actualizar algo cada x segundos, llamar recursivamente a setTimeout es una mala idea. Aquí hay una solución que es mucho más comprensible:

 const runEvery = 15 * 60; // 15 minutes in seconds const showRemaining = () => { // get current time in seconds and find when the next run starts in seconds const seconds = Math.round(Date.now() / 1000); const nextRun = runEvery * Math.ceil(seconds / runEvery); const timeLeft = nextRun - seconds; const minutesLeft = Math.floor(timeLeft / 60); const secondsLeft = timeLeft % 60; document.getElementById('clock').textContent = minutesLeft + ':' + ('0' + secondsLeft).slice(-2); } showRemaining(); setInterval(showRemaining, 1000);
 <div id="clock"></div>

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