[英]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.