Итак, поигравшись с этим кодом некоторое время, я думаю, что понял это. Я не уверен, что это лучший способ сделать это, но, судя по моим тестам, он работает до 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>
Я надеюсь, что кто-то сочтет это полезным и полезным :)