No soy un desarrollador js, más bien un aspirante a diseñador gráfico, estoy creando un sitio web para un amigo y necesito reiniciar la cuenta regresiva después de que llegue la fecha límite.
Obtuve este código de Matt Smith en Codepen y funciona muy bien (puedes echarle un vistazo https://m13m.webflow.io/ ), pero desafortunadamente el temporizador se vuelve negativo y quiero que se repita.
¿Cómo podría hacer eso?
¡Muchos gracias!
<script> // Original Pen by Matt Smith const second = 1000, minute = second * 60, hour = minute * 60, day = hour * 24; let countDown = new Date('Mar 19, 2022 22:28:00').getTime(), x = setInterval(function() { let now = new Date().getTime(), distance = countDown - now; document.getElementById('days').innerText = Math.floor(distance / (day)), document.getElementById('hours').innerText = Math.floor((distance % (day)) / (hour)), document.getElementById('minutes').innerText = Math.floor((distance % (hour)) / (minute)), document.getElementById('seconds').innerText = Math.floor((distance % (minute)) / second); //do something later when date is reached //if (distance < 0) { // clearInterval(x); // 'IT'S MY BIRTHDAY!; //} }, second) </script>Tu código se ve bien. Debe verificar si la distancia es inferior a 0, luego borre el temporizador e imprima el texto BDay.
// Original Pen by Matt Smith const second = 1000, minute = second * 60, hour = minute * 60, day = hour * 24; let countDown = new Date('Mar 19, 2022 22:28:00').getTime(); let x = setInterval(function() { let now = new Date().getTime(); let distance = countDown - now; if (distance < 0) { document.getElementById('msg').innerHTML = "HAPPY BDAY" clearInterval(x); return false; } document.getElementById('days').innerText = Math.floor(distance / (day)); document.getElementById('hours').innerText = Math.floor((distance % (day)) / (hour)); document.getElementById('minutes').innerText = Math.floor((distance % (hour)) / (minute)); document.getElementById('seconds').innerText = Math.floor((distance % (minute)) / second); }, second) <div id="days"></div> <div id="hours"></div> <div id="minutes"></div> <div id="seconds"></div> <div id="msg"></div> // Original Pen by Matt Smith const second = 1000, minute = second * 60, hour = minute * 60, day = hour * 24; let round = 1; const diff = 1; // set timediff in minutes //let countDown = new Date('Mar 19, 2022 22:28:00').getTime(); let countDown = new Date(new Date().getTime() + diff*60000); let x = setInterval(function() { let now = new Date().getTime(); let distance = countDown - now; if (distance < 0) { countDown = new Date(new Date().getTime() + diff*60000); document.getElementById('msg').innerHTML = "HAPPY BDAY" + ' Round => ' + (round++) } document.getElementById('days').innerText = Math.floor(distance / (day)); document.getElementById('hours').innerText = Math.floor((distance % (day)) / (hour)); document.getElementById('minutes').innerText = Math.floor((distance % (hour)) / (minute)); document.getElementById('seconds').innerText = Math.floor((distance % (minute)) / second); }, second) <div id="days"></div> <div id="hours"></div> <div id="minutes"></div> <div id="seconds"></div> <div id="msg"></div>