簡體   English   中英

倒數計時器重置

[英]Countdown Timer Reset

我之前做了一些倒數計時器,但需要對此稍作改動。 我需要每周將其倒計時至星期三。 因此,當到達星期三時,它會續訂並考慮到未來7天的下一個星期三。

到目前為止,我已經使用了一個非常簡單的代碼塊,它擔心會占用一些空間:

    var td = new Date("Sep 16, 2015").getTime();
var days, hrs, mins, secs;

function recalc() {
    var curdate = new Date().getTime();
    var secsleft = (td - curdate) / 1000;

    days = parseInt(secsleft / 86400);
    secsleft = secsleft % 86400;

    hrs = parseInt(secsleft / 3600);
    secsleft = secsleft % 3600;

    mins = parseInt(secsleft / 60);
    secs = parseInt(secsleft % 60);
}

setInterval(function() {
    recalc();
    while(days<1 && hrs<1 && mins<1 && secs<1) {td.setDate(td.getDate() + parseInt(7)); recalc();}
    $("#countdown").html(days + " Days " + hrs + " Hours " + mins + " Mins " + secs + " Secs");
}, 1000);

我的問題是代碼的最后一行。 我正在檢查是否全部達到0或以下。 在我目前的情況下,負數有幾個數字,該行不會觸發。 盡管如此,我還收到一條錯誤消息,指出td.getDate()不是函數。

編輯:我可以肯定我唯一剩下的問題就是為什么td.setDate(td.getDate() + parseInt(7)); 返回錯誤: td.getDate()不是函數。

一切都正確觸發,所需要做的就是在td (target_date)上添加7天,然后應該重新運行recalc()函數。

這行不通:

if(days<1 && hrs<1 && mins<1 && secs<1) {td.setDate(td.getDate() + 7);}

因為從邏輯上講,所有不能同時小於1。 一旦它們全部達到零,則該天切換到第二天。 一天的最后一秒實際上是23:59:59。

您應該選擇:

if(days=0 && hrs=0 && mins=0 && secs<2) {td.setDate(td.getDate() + 7);}

我認為這應該會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM