jQuery的。如何将超时设置为午夜并每天重置

时间:2013-11-10 22:55:04

标签: jquery timer timeout settimeout

对不起这个愚蠢的问题:)

所以我有一个美丽的计时器

 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>

那么我怎样才能将数据超时设置到午夜?然后重置它。

1 个答案:

答案 0 :(得分:1)

将日期设置为午夜,然后从当前时间(以毫秒为单位)减去午夜的ms。现在在你的超时中使用它

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

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

编辑 - 不确定这将如何处理夏令时