Задать вопрос

Можно ли переделать плагин timeTO, что бы отсчет времени был в диапазоне (пр. 13 — 14 часов)?

имеется плагин timeTO, который считает время от текущего до поставленного, а можно ли как сделать, что бы он работал в диапазоне времени. например с 10 утра до 12 дня, каждый день.
вообще такая реализация возможна?
  • Вопрос задан
  • 2236 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
А ссылку на плагин?

Сделать такое возможно:
jsfiddle.net
function isWorkHour(start, end) {
    var date = new Date(),
        hours = date.getHours();

    return (hours > start && hours <= end) ? true : false;    
}

function padNumber(number, pad) {
    var N = Math.pow(10, pad);
    return number < N ? ("" + (N + number)).slice(1) : "" + number;
}

function getRemainingTime(newData, oldData) {
    var diff = (oldData.getTime() - newData.getTime()) / 1000;
    var hrs = parseInt(diff / 3600);
    diff = diff % 3600;
    
    var minutes = parseInt(diff / 60);
    return {
        hrs: padNumber( Math.abs(hrs), 2 ),
        mnt: padNumber( Math.abs(minutes), 2 )
    }
}

function workHourse(start, end) {
    var timer = document.getElementById('timer'),
        text;
    
    if ( isWorkHour(start, end) ) {
        var time,
            date = new Date(),
            oldData = new Date();
        
        oldData.setHours(end);
        oldData.setMinutes(0);
        oldData.setSeconds(0);
        
        time = getRemainingTime(date, oldData);
        str = 'Осталось работать: ' + time.hrs + ':' + time.mnt;
    } else {
        str = 'Рабочие часы закончились';
    }
    
    text = document.createTextNode(str); 
    timer.innerHTML = '';
    timer.appendChild(text);   
    
    (setTimeout(function () {
        workHourse(start, end);
    }, 1000))(start, end); 
}

workHourse(10, 12);
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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