Я пытаюсь создать временные счетные часы. Он не основан на 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>
Я наконец вернулся к рассмотрению этого и переписал код, и это работает как шарм.
<span id="countdown" class="timer"></span> <script> var upgradeTime = 172801; var seconds = upgradeTime; function timer() { var days = Math.floor(seconds/24/60/60); var hoursLeft = Math.floor((seconds) - (days*86400)); var hours = Math.floor(hoursLeft/3600); var minutesLeft = Math.floor((hoursLeft) - (hours*3600)); var minutes = Math.floor(minutesLeft/60); var remainingSeconds = seconds % 60; if (remainingSeconds < 10) { remainingSeconds = "0" + remainingSeconds; } document.getElementById('countdown').innerHTML = days + ":" + hours + ":" + minutes + ":" + remainingSeconds; if (seconds == 0) { clearInterval(countdownTimer); document.getElementById('countdown').innerHTML = "Completed"; } else { seconds--; } } var countdownTimer = setInterval('timer()', 1000); </script>
Вы можете использовать этот js для эффективного управления таймером.
Лично я бы использовал интеграцию таймера обратного отсчета jquery. Он прост и имеет несколько вариантов отображения в разных форматах. Поскольку я довольно новичок в JS, это был самый простой способ получить счетчик / таймер.
<span id="date_regist"></span> <script type="text/javascript"> <script src="http://rc.sefunsoed.org/assets/js/countdown/jquery.countdown.min.js"></script> var s = '2017/03/01 15:21:21'; f = '2017/03/01 15:22:00'; format = '%-w <sup>week%!w</sup> ' + '%-d <sup>day%!d</sup> ' + '%H <sup>hr</sup> ' + '%M <sup>min</sup> ' + '%S <sup>sec</sup>'; jQuery('#date_regist').countdown(s) .on('update.countdown', function(event) { jQuery(this).html("<b>will be open </b>" + event.strftime(format)); }) .on('finish.countdown', function(event) { jQuery("#date_regist").remove() jQuery("body").append('<span id="date_regist"></span>') jQuery("#date_regist").countdown(f) .on('update.countdown', function(event) { jQuery(this).html("<b> is open for </b>" + event.strftime(format)); }) .on('finish.countdown', function(event) { jQuery('#rework').hide(); //jQuery(this).html("<b> is closed.</b>"); }); }); </script>