oleglzns
@oleglzns

Почему таймер обратного отсчета на js показывает рассчитанное время на 3 часа больше?Как исправить?

Всем привет! Проблема в том, что написанный таймер обратного отсчета показывает на 3 часа больше. Подскажите пожалуйста как исправить?

const deadLine = '2021-09-10';

    function getTimeRemaining(endtime) {  
        const t = Date.parse(endtime) - Date.parse(new Date()), 
              days = Math.floor(t / (1000 * 60 * 60 * 24)), 
              hours = Math.floor(t / (1000 * 60 * 60) % 24), 
              minutes = Math.floor((t / 1000 / 60) % 60),
              seconds = Math.floor((t / 1000) % 60);

        return {           
            'total': t,
            'days': days,
            'hours': hours,
            'minutes': minutes,
            'seconds': seconds
        };
    }

    function getZero(num) {
        if (num >= 0 && num < 10) {
             return `0${num}`;
        } else {
            return num;
        }
    }

    function setClock(selector, endtime ) {
        const timer = document.querySelector(selector),
              days = timer.querySelector('#days'),
              hours = timer.querySelector('#hours'),
              minutes = timer.querySelector('#minutes'),
              seconds = timer.querySelector('#seconds'),
              timeInterval = setInterval(updateClock, 1000);
        
        updateClock();

        function updateClock() { 
            const t = getTimeRemaining(endtime); 

            days.innerHTML =  getZero(t.days);
            hours.innerHTML = getZero(t.hours);
            minutes.innerHTML = getZero(t.minutes);
            seconds.innerHTML = getZero(t.seconds);

            if (t.total <= 0) {    
                clearInterval(timeInterval);
            } 
        }
    }

    setClock('.timer', deadLine);


<div class="wrapper">
        <div class="timer_wrapper">
            <div class="title">It is a timer</div>
            <div class="timer">
                <div class="timer_block">
                    <span id="days">00</span>
                    days
                </div>
                <div class="timer_block">
                    <span id="hours">00</span>
                    hours
                </div>
                <div class="timer_block">
                    <span id="minutes">00</span>
                    minutes
                </div>
                <div class="timer_block">
                    <span id="seconds">00</span>
                    seconds
                </div>
            </div>
        </div>
    </div>
  • Вопрос задан
  • 247 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Steppp
Возможно потому что часовой пояс +0, а не как у тебя +3)

getTimezoneOffset
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы