每秒循环功能

时间:2012-05-02 16:55:03

标签: javascript jquery

我正在制作一个倒数计时器,我想要时间每秒刷新一次。我使用setInterval但它似乎只运行一次而不是每秒运行一次。我的代码出了什么问题?

var countDown = setInterval(function(){
$('#days').val(daysLeft);
$('#hours').val(hoursLeft);
$('#minutes').val(minLeft);
$('#seconds').val(secLeft);   
},1000);

演示:http://jsfiddle.net/EnigmaMaster/pyRR8/14/

3 个答案:

答案 0 :(得分:4)

您需要重新计算间隔内剩余的时间,否则您将继续将其设置为相同的值。

答案 1 :(得分:2)

您的代码未更新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);

答案 2 :(得分:1)

想要这样吗?我已经更新了你的Jsfiddle

见这里:http://jsfiddle.net/pyRR8/23/