Actualmente, tengo esto en mi código HTML y no estoy 100% seguro de cómo redirigir a otra página que tengo después de que termine la cuenta regresiva. Tampoco estoy muy familiarizado con javascript en este momento, cualquier ayuda es apreciada. Sé que cuando la página se carga, toma la hora actual (en el fragmento .now) y solo le agrega 10 segundos en lugar de una hora establecida en la que la secuencia de comandos debería terminar y luego mostrar la diferencia entre la hora actual y la hora establecida. El problema con esto es que cuando alguien carga esta página, siempre muestra una cuenta regresiva de 10 segundos en lugar de una cuenta regresiva universal. Por ejemplo, la hora actual es 3:53 y debería terminar a las 4:00. Una vez que el tiempo llegue a 4, presione la redirección.
<!--Countdown Script --> <script type="text/javascript"> $(document).ready(function() { $('#countdown17').ClassyCountdown({ theme: "flat-colors-very-wide", end: $.now() + 10 }); }); </script>Desea obtener el tiempo de uno fijo. Por lo tanto, utilice la API incorporada de Date en lugar de $.now() de jQuery, porque
Esta API ha quedado obsoleta en jQuery 3.3; utilice el método nativo Date.now() en su lugar.
¿A qué hora quieres? Determinarlo de antemano (GMT):
const date1 = new Date('September 13, 2021 04:00:00');Luego, al restar las fechas obtendrás el tiempo restante.
<!--Countdown Script --> <script type="text/javascript"> $(document).ready(function() { $('#countdown17').ClassyCountdown({ theme: "flat-colors-very-wide", end: date1 - new Date() // gets the difference between determined date and current date onEndCallback: () => { window.location.href = "http://www.example.com"; } }); }); </script>Recuerde manejar el caso cuando el tiempo de acceso fuera posterior al tiempo predefinido.
Supongo que este es el complemento ClassyCountdown() jQuery que está utilizando: https://github.com/arsensokolov/jquery.classycountdown
Si ese es el caso, tiene un onEndCallback que se llama una vez que la cuenta regresiva llega a 0.
Entonces tu código se convertiría en algo como esto:
<!--Countdown Script --> <script type="text/javascript"> $(document).ready(function() { $('#countdown17').ClassyCountdown({ theme: "flat-colors-very-wide", end: $.now() + 10, onEndCallback: function () { document.location.href = 'https://www.google.com' // <- The url to redirect to } }); }); </script>Respuesta actualizada para redirigir en un tiempo absoluto:
$(document).ready(function() { setInterval(function() { // This is when you want the redirect to happen // This is the absolute time, as reported by the users browser let hour = 21; let minute = 18; let second = 20; let date = new Date(); if (date.getHours() == hour && date.getMinutes() == minute && date.getSeconds() >= second) { document.location.href = 'https://www.whatever.com'; } }, 1000); });agregue un parámetro de devolución de llamada (función) a su cuenta regresiva
<!--Countdown Script --> <script type="text/javascript"> $('#countdown17').ClassyCountdown({ theme: "flat-colors-very-wide", end: $.now() + 10, onEndCallback: function () { window.location.href = "http://www.newlink.com"; } }); </script>