Помощь с таймером
Есть в HTML простая строка:
<div id="time">
Таймер: <span id="day">0</span> : <span id='hour'>0</span> : <span id="min">0</span> : <span id="sec">0</span>
</div>
И JavaScript (скрипт не закончен):
var timeA = [5, 59, 23, 3];
var htmlTime = [document.getElementById('sec'), document.getElementById('min'), document.getElementById('hour'), document.getElementById('day')];
htmlTime[0].innerHTML = timeA[0];
htmlTime[1].innerHTML = timeA[1];
htmlTime[2].innerHTML = timeA[2];
htmlTime[3].innerHTML = timeA[3];
function time(){
htmlTime[0].innerHTML = timeA[0];
timeA[0]--;
if (timeA[0] == 0){
timeA[1]--;
htmlTime[1].innerHTML = timeA[1];
timeA[0] = 5;
}
}
setInterval(time, 1000);
Почему-то счётчик минут декрементирует, когда остаётся ещё одна секунда, а нужно чтобы это происходило одновременно с восполнением счётчика секунд. Как исправить? |
if (timeA[0] == -1) |
Тогда с 1 перескакивает на -1 вместо 0
|
строку:
htmlTime[0].innerHTML = timeA[0]; перенесите вконец ф-ии |
может проще объект Date использовать, пусть сам считает?
<div id="time">
Таймер: <span id="day">0</span> : <span id='hour'>0</span> : <span id="min">0</span> : <span id="sec">0</span>
</div>
<script>
var d = new Date(2018, 0, 3, 23, 59, 5),
htmlTime = [document.getElementById('sec'), document.getElementById('min'), document.getElementById('hour'), document.getElementById('day')];
function time(){
htmlTime[3].innerHTML = d.getDate();
htmlTime[2].innerHTML = d.getHours();
htmlTime[1].innerHTML = d.getMinutes();
htmlTime[0].innerHTML = d.getSeconds();
d = new Date(d - 1000); // вычитаем 1000 милисекунд
}
time();
setInterval(time, 1000);
</script>
|
Проще, спасибо за подсказку. Я просто ещё не изучал объект Date
|
начните здесь https://learn.javascript.ru/datetime
|
Цитата:
<div id="time">
Таймер: <span id="day">0</span> : <span id='hour'>0</span> : <span id="min">0</span> : <span id="sec">0</span>
</div>
<script>
var timeA = [5, 59, 23, 3];
var htmlTime = [document.getElementById('sec'), document.getElementById('min'), document.getElementById('hour'), document.getElementById('day')];
htmlTime[0].innerHTML = timeA[0];
htmlTime[1].innerHTML = timeA[1];
htmlTime[2].innerHTML = timeA[2];
htmlTime[3].innerHTML = timeA[3];
function time(){
htmlTime[0].innerHTML = timeA[0];
timeA[0]--;
if (timeA[0] == -1){
timeA[1]--;
htmlTime[1].innerHTML = timeA[1];
timeA[0] = 5;
}
}
setInterval(time, 1000);
</script>
|
А как можно реализовать привязку, чтобы при обновлении страницы таймер не сбрасывался?
|
|
| Часовой пояс GMT +3, время: 01:00. |