Javascript jquery日期差问题
我从网络上的代码片段中创建了这个小函数。它做它期望做的,除了它减少了2秒,而不是每倒计时滴答,如果我刷新页面,它会回到原来的时间。你们能看看问题出在哪里吗Javascript jquery日期差问题,javascript,jquery,date,Javascript,Jquery,Date,我从网络上的代码片段中创建了这个小函数。它做它期望做的,除了它减少了2秒,而不是每倒计时滴答,如果我刷新页面,它会回到原来的时间。你们能看看问题出在哪里吗 jQuery.countdown = function(selector, datevalue) { var amount = datevalue*1000; var curdate = new Date();
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--代码>这是最明显的事情,我找不到任何理由监督它。谢谢你,伊金:)