Как исправить таймер отчета от времени?

Есть код таймера который считает до даты события, как сделать чтобы таймер считал точно время от даты

timedown("2020-10-27T07:07:00+02:00","link_1");

function timedown(ti,id){

var countDownDate = new Date(ti).getTime();

var x = setInterval(function() {

    var now = new Date().getTime();
    
    var distance = countDownDate - now;
    
    var pad = n=>(n < 10? "0":"") + n;  
    
    var days = Math.floor(distance / (1000 * 60 * 60 * 24));
    var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
    var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
    var seconds = Math.floor((distance % (1000 * 60)) / 1000);

   document.getElementById(id).innerHTML = "до входа "  + (days!=0 ? days + ":" : "") + pad(hours)+ ":" + pad(minutes) + ":" + pad(seconds);                                                                                       
    if (distance < 0) {
        var x = setInterval(function(){
        clearInterval(x);
       document.getElementById("link_1").innerHTML = "уже проходит " + (days!=0 ? days + ":" : "") + pad(hours) + ":" + pad(minutes) + ":" + pad(seconds);
            }, 1000);
    }
    
}, 1000);}
  • Вопрос задан
  • 51 просмотр
Решения вопроса 1
@ksnk
floor округляет вниз. Так что чуть меньше -1 станет -2. Ну и секунды вполне можно округлять, а не обрезать.
Ну и лепить еще один таймаут вместо старого как-то неправильно. Можно же и в одном уместится.
Как нибудь так
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы