JQuery. Как установить тайм-аут до полуночи и сбрасывать его каждый день

0

Извините за этот глупый вопрос :)

поэтому у меня есть красивый таймер

 function wr_hours(item){

    //  timeout we keep seconds
    var sek = item.data("timeout");

    var min = Math.floor((sek /60)%60) ;//min
    var hour = Math.floor((sek / (60*60)) %24) ;//hours
    var days = Math.floor(sek /(24*60*60)) ;//days
    var counterWrapper = $("#b-countdown");

    if ( min < 10 ){
        min = "0" + min;
    }
    //  CSS around
    if ( hour != counterWrapper.data("left") ){
        var hourClass = hour == 0 ? 1 : hour;
        counterWrapper.attr("class", "left-" + hourClass).attr("data-left", hourClass)
    }

    var time_wr = hour + ":" + min;
    item.html(time_wr);
    item.data("timeout", (sek - 1) > 0 ? sek - 1 : 24 * 60 * 60);
}

setInterval(function(){
    $(".deadline").each(function(){ wr_hours($(this));})
}, 1000);

Он работает с этим кодом в html:

<div id="b-countdown" data-left="" class="">
    <span class="deadline" data-timeout="24053"></span>
</div>

Итак, как я могу установить тайм-аут данных до полуночи? И сбросьте его после.

Теги:
timer
settimeout
timeout

1 ответ

1
Лучший ответ

Установите дату до полуночи, а затем вычитайте мс в полночь с текущего времени в мс. Теперь используйте это в свой тайм-аут

var midnight = new Date();
midnight.setHours(24,0,0,0); //midnignt

var timeTilMidnight = midnight.getTime() - Date.now();

Изменить - не уверен, как это будет справляться с летней экономией

Ещё вопросы

Сообщество Overcoder
Наверх
Меню