jquery日期差异麻烦

时间:2012-03-19 11:06:58

标签: javascript jquery date

我通过网络上的代码片段创建了这个小功能。它做了它预期做的事情,除了它每倒计时滴答减少2秒而不是一个,如果我刷新页面它再次回到原始时间。你们能看出问题所在吗?

                jQuery.countdown = function(selector, datevalue) {

                var amount = datevalue*1000;

                var curdate = new Date();
                curdate     =   curdate.getTime();

                var difference = amount - curdate;


                if(amount < 0 || curdate >= amount){
                    $(selector).html("Done");
                }


                else{
                    datevalue--;

                    var daysRemaining = Math.floor(difference / 1000 / 60 / 60 / 24);
                    var hoursRemaining = Math.floor(difference / 1000 / 60 / 60 - (24 * daysRemaining));
                    var minutesRemaining = Math.floor(difference / 1000 / 60 - (24 * 60 * daysRemaining) - (60 * hoursRemaining));
                    var secondsRemaining = Math.floor(difference / 1000 - (24 * 60 * 60 * daysRemaining) - (60 * 60 * hoursRemaining) - (60 * minutesRemaining));

                    $(selector).html(daysRemaining+':'+hoursRemaining+':'+minutesRemaining+':'+secondsRemaining);
                    setTimeout(function() {  
                        $.countdown(selector, datevalue);
                    }, 1000); 
                }
};




$.countdown('.date', 1332239568);

1 个答案:

答案 0 :(得分:1)

删除datevalue--;

您现在正在做的是倒数到特定的纪元时间datevalue。但是,你每个滴答都会减少一秒钟。同时,当前时间在setTimeout中传递,因此您既可以向前移动又可以将目标拉向自己。

保留第一个电话的原始curdate,保存在某处。或者删除datevalue--;