0

我正在使用 jQuery 倒计时: http: //keith-wood.name/countdown.html

此脚本的示例用法是:

$(selector).countdown({since: new Date(2010, 12-1, 25)});

您必须设置完整日期,如果我只有以秒为单位的总时间怎么办?我的意思是我想从 50000 秒开始倒计时并自动将其转换为天:小时:秒?

4

3 回答 3

2

我刚刚编写了一个小函数来为你做一个计数器,以防你想拥有更多的控制权。

countDown($('#selector'), 300);

function countDown(selector, seconds){
    var oneSecond = 1;
    var passedSeconds = 0;
    var timeLeft = 0;
    var interval = setInterval(
        function(){
            passedSeconds += oneSecond;
            timeLeft = seconds-passedSeconds;
            if(timeLeft > 0 ){
                selector.text(getTimer(timeLeft));
            }else{
                selector.text('Time out');
                clearInterval(interval);
            }

        },
        oneSecond*1000);
}

function getTimer(timeLeft){
    var litteralDuration = '';
    var s = parseInt(timeLeft);
    var d = Math.floor(s / 86400);
    s %= 86400;
    var h = Math.floor(s / 3600);
    s %= 3600;
    var m = Math.floor(s / 60);
    s %= 60;


    if(d > 0){
        litteralDuration += (d == 1) ? '1 D ' :  d + ' Ds ' ;
    }
    if(h > 0){
        litteralDuration += (h == 1) ? '1 H ' : h + ' Hs ' ;
    }
    if(m > 0){
        litteralDuration += (m == 1) ? '1 M ' : m + ' Ms ' ;
    }
    if(s > 0){
        litteralDuration += (s == 1) ? '1 S ' :  s + ' Ss ' ;
    }

    return litteralDuration;
}

这是一个 JS Fiddle:Fiddle

希望有帮助

于 2014-01-02T20:36:25.593 回答
1

尝试这个:

var now = new Date();
var later = new Date(now.getTime() + 50000000); // 50000s == 50000000ms
$('#countdown').countdown({until: later});
于 2014-01-02T20:17:30.657 回答
1

您必须获取当前日期并添加 50000 秒。你可以这样做

$("#countdown").countdown({
    until: new Date(new Date().getTime() + (50000 * 1000))
});

JSFiddle 示例

于 2014-01-02T20:17:47.897 回答