Jquery / JavaScript Таймер обратного отсчета от прошедших часов, минут и секунд - PullRequest
0 голосов
/ 06 мая 2020

Хорошо, я нашел этот код в This Post , и я хочу добавить час вместе с минутами и секундами. Может кто-нибудь помочь с этим - я не очень хорош с jquery: (

Вот код:

<div id=timer></div>
<script type="text/javascript">
    var timeoutHandle;
    function countdown(minutes, seconds) {
        function tick() {
            var counter = document.getElementById("timer");
            counter.innerHTML =
                minutes.toString() + ":" + (seconds < 10 ? "0" : "") + String(seconds);
            seconds--;
            if (seconds >= 0) {
                timeoutHandle = setTimeout(tick, 1000);
            } else {
                if (minutes >= 1) {
                    // countdown(mins-1);   never reach “00″ issue solved:Contributed by Victor Streithorst
                    setTimeout(function () {
                        countdown(minutes - 1, 59);
                    }, 1000);
                }
            }
        }
        tick();
    }

    countdown(1, 30);
</script>

Итак, чтобы было ясно, мне нужно передать 3 переменные: countdown(hour, mins, secs); - Большое спасибо!

1 Ответ

0 голосов
/ 06 мая 2020

Итак, поигравшись с этим кодом некоторое время, я думаю, что понял это. Я не уверен, что это лучший способ сделать это, но, судя по моим тестам, он работает до 24 часов.

Вот код; если вы можете добавить к нему или улучшить его, пожалуйста, сделайте так, как я не очень хорош со сценарием java :(

<div id=timer></div>
<script type="text/javascript">
var timeoutHandle;
function countdown(hours, minutes, seconds) {
function tick() {
var counter = document.getElementById("timer");
counter.innerHTML = hours.toString() + ":" + (minutes < 10 ? "0" : "") + String(minutes) + ":" + (seconds < 10 ? "0" : "") + String(seconds);
seconds--;
if (seconds >= 0) {
timeoutHandle = setTimeout(tick, 1000);
} else {
if (minutes >= 1) {
setTimeout(function () { countdown(hours, minutes - 1, 59); }, 1000);
}
else if (hours >= 1) {
setTimeout(function () { countdown(hours - 1, 59, 59); }, 1000);
}

}
}
tick();
}

countdown(2,30,10);
</script>

Я надеюсь, что кто-то сочтет это полезным и полезным :)

...