Я создаю систему, в которой мне нужно проверить крайний срок в зависимости от инициализации клиента. Например, если инициализация клиента произошла сегодня во время x, а крайний срок - завтра или будущее во время y, я хотел бы вычислить оставшееся время, чтобы сообщить таймеру обратного отсчета. Мне удалось узнать оставшееся время, и моя проблема - таймер обратного отсчета, чтобы показать оставшиеся дни, часы, минуты и секунды.
Следующий код HTML указывает оставшееся время до крайнего срока
<span style='color: green;'>
<span class='e-m-days'>0</span> Days |
<span class='e-m-hours'>8</span> Hours |
<span class='e-m-minutes'>0</span> Minutes |
<span class='e-m-seconds'>1</span> Seconds
</span>
Мой jQuery код:
<script>
$(function(){
var days = parseInt( $('.e-m-days').html() );
var hours = parseInt( $('.e-m-hours').html() );
var minutes = parseInt( $('.e-m-minutes').html() );
var seconds = parseInt( $('.e-m-seconds').html() );
var minutesWrap = 0;
var hoursWrap = 0;
var daysWrap;
var hoursRem = hours;
var timer = seconds;
var counter =seconds;
function countOrdersRemainingTime(){
var id = setTimeout(countOrdersRemainingTime, 1000);
if(timer < 0){
minutesWrap ++;
timer = 59;
}
var minRem = minutes - minutesWrap;
if( minRem == -1 ){
hoursWrap + 1;
minRem = 59;
var hoursRem = hours - 1;
}
if(days == 0 && hours == 0 && minutes == 0 && seconds == 0){
clearTimeout(id);
}
$('.e-m-seconds').html(timer);
$('.e-m-minutes').html(minRem);
$('.e-m-hours').html(hoursRem);
timer --;
}
countOrdersRemainingTime();
});
</script>
Ключевым моментом является создание таймера обратного отсчета, который считает, пока не будет достигнут крайний срок, то есть до количества дней, часов, минут, и секунды становятся равными нулю. Я пытался часами безуспешно :(.