我正在做一个倒数计时器,我希望时间每秒刷新一次。我使用 setInterval 但它似乎只运行一次而不是每秒运行一次。我的代码有什么问题?
var countDown = setInterval(function(){
$('#days').val(daysLeft);
$('#hours').val(hoursLeft);
$('#minutes').val(minLeft);
$('#seconds').val(secLeft);
},1000);
我正在做一个倒数计时器,我希望时间每秒刷新一次。我使用 setInterval 但它似乎只运行一次而不是每秒运行一次。我的代码有什么问题?
var countDown = setInterval(function(){
$('#days').val(daysLeft);
$('#hours').val(hoursLeft);
$('#minutes').val(minLeft);
$('#seconds').val(secLeft);
},1000);
您需要重新计算间隔内剩余的时间,否则您将继续将其设置为相同的值。
您的代码没有更新currentDate
变量。我更新了jsFiddle上的代码并将其粘贴到此处:
var endDay = new Date('May 24, 2012 11:30:00');
var countDown = setInterval(function(){
var currentDate = new Date();
var daysdecimal = (endDay - currentDate)/(1000*60*60*24);
var daysLeft = Math.floor(daysdecimal);
var hoursdecimal = (daysdecimal - Math.floor(daysdecimal))*24;
var hoursLeft = Math.floor(hoursdecimal);
var minLeft = 60 - currentDate.getMinutes();
var secLeft = 60 - currentDate.getSeconds();
$('#days').val(daysLeft);
$('#hours').val(hoursLeft);
$('#minutes').val(minLeft);
$('#seconds').val(secLeft);
},1000);
想要这样吗?我已经更新了你的 Jsfiddle
见这里:http: //jsfiddle.net/pyRR8/23/