Javascript jquery日期差问题

Javascript jquery日期差问题,javascript,jquery,date,Javascript,Jquery,Date,我从网络上的代码片段中创建了这个小函数。它做它期望做的,除了它减少了2秒,而不是每倒计时滴答,如果我刷新页面,它会回到原来的时间。你们能看看问题出在哪里吗 jQuery.countdown = function(selector, datevalue) { var amount = datevalue*1000; var curdate = new 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);
jQuery.countdown=函数(选择器,日期值){
var金额=日期值*1000;
var curdate=新日期();
curdate=curdate.getTime();
var差异=金额-当前日期;
如果(金额<0 | | curdate>=金额){
$(选择器).html(“完成”);
}
否则{
日期值--;
var daysRemaining=数学下限(差/1000/60/60/24);
var Hoursresleving=数学楼层(差/1000/60/60-(24*天维护));
变量分钟剩余=数学楼层(差/1000/60-(24*60*天剩余)-(60*小时剩余));
var SecondsResmaining=数学楼层(差/1000-(24*60*60*天维护)-(60*60*小时剩余)-(60*分钟剩余));
$(选择器).html(daysRemaining+':'+hoursresremaining+':'+minutesRemaining+':'+secondsRemaining);
setTimeout(函数(){
$.countdown(选择器,日期值);
}, 1000); 
}
};
$倒计时('日期',1332239568);
删除
日期值--

现在要做的是倒计时到特定的历元时间
datevalue
。但是,你每滴答一秒就减少一秒。同时,当前时间在setTimeout中经过,所以你们都在时间上向前移动,并将目标拉到自己身上


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

这是最明显的事情,我找不到任何理由监督它。谢谢你,伊金:)