Таймер обратного отсчета Javasacript в днях, часах, минутах, секундах

Я пытаюсь создать отсчет времени по времени. Это не основано на current_dates. Начальное время, которое будет извлечено, будет из отдельного файла php. Это будет для браузерной игры. Когда кто-то нажимает кнопку, чтобы запустить этот скрипт. он проверит, выполнены ли определенные требования и если да, то этот сценарий будет запущен. Основываясь на уровне объекта, он установит начальный таймер для этого уровня. Надеюсь, что это имеет смысл. Во всяком случае, я основал сценарий таймера от первого кода, который я предоставляю.

Этот скрипт учитывает только минуты и секунды. Я изменил его, чтобы включить дни и часы, а также. Где-то в процессе я запутался, и сценарий даже не работает вообще. Я также не совсем уверен, что это будет лучший метод для расчета этого. Итак, если у вас есть более чистый метод, пожалуйста, поделитесь. Заранее спасибо.

Этот скрипт основан на скрипте минут / секунд, который я видел. Вот оригинальный источник:

<span id="countdown" class="timer"></span>
<script>
   var seconds = 60;
   function secondPassed() {
   var minutes = Math.round((seconds - 30)/60);
   var remainingSeconds = seconds % 60;
   if (remainingSeconds < 10) {
      remainingSeconds = "0" + remainingSeconds; 
   }
   document.getElementById('countdown').innerHTML = minutes + ":" + remainingSeconds;
   if (seconds == 0) {
    clearInterval(countdownTimer);
    document.getElementById('countdown').innerHTML = "Buzz Buzz";
   } else {
    seconds--;
   }
   }
   var countdownTimer = setInterval('secondPassed()', 1000);
</script>

Вот модифицированный скрипт, который я пытаюсь включить дни, часы, минуты и секунды.

<span id="countdown"></span>
<script>
     var current_level = 93578;

     function timer() {

        var days = Math.round(current_level/86400);
        var remainingDays = Math.round(current_level - (days * 86400));

        if (days <= 0){
             days = current_level;
        }

        var hours = Math.round(remainingDays/3600);
        var remainingHours = Math.round(remainingDays - (hours * 3600));

        if (hours >= 24){
             hours = 23;
        }

        var minutes = Math.round(remainingHours/60);
        var remainingMinutes = Math.round(remainingHours - (minutes * 60));

        if (minutes >= 60) {
             minutes = 59;
        }

        var seconds = Math.round(remainingMinutes/60);

        document.getElementById('countdown').innerHTML = days + ":" + hours ":" + minutes + ":" + seconds;

        if (seconds == 0) {
             clearInterval(countdownTimer);
             document.getElementById('countdown').innerHTML = "Completed";
        }
     }
     var countdownTimer = setInterval('timer()', 1000);
</script>

Ответы на вопрос(5)

Ваш ответ на вопрос