开发者

How can I convert seconds to minutes in jQuery while updating an element with the current time?

So I see a number of ways to display allot of seconds in a (static) hr/min/sec. However, I am trying to produce a visual count down timer:

$('#someelement').html(minCounter + ' minutes ' + ((secCounter == 0) ? '' : (secCounter + ' seconds')));

My counter is reduc开发者_如何学运维ed inside a SetInterval that triggers ever 1 second:

//.......
var counter = redirectTimer;
jQuery('#WarningDialogMsg').html(minCounter + ' minutes ' + ((secCounter == 0) ? '' : (secCounter + ' seconds')));

//........

SetInternval( function() {
    counter -= 1;
    secCounter = Math.floor(counter % 60);
    minCounter = Math.floor(counter / 60);

//.......

  $('#someelement').html(minCounter + ' minutes ' + ((secCounter == 0) ? '' : (secCounter + ' seconds')));
}, 1000)

It is a two minute counter but I don't want to display 120 seconds. I want to display 1 : 59 (and counting down).

I have managed to get it to work using the above, but my main question is: is there a more elegant way to accomplish the above? (note: I am redirecting once "counter == 0").


Try http://ejohn.org/blog/javascript-pretty-date/

or this:

var old_date = new Date('Wed Dec 29 2010 21:56:33');
var time_update = dateDiff(old_date, new Date()); // {"diff":119000,"ms":0,"s":59,"m":1,"h":0,"d":0}


function dateDiff(date1, date2) {
    var diff = Date.parse(date2) - Date.parse(date1);

    if (diff < 0) return false;
    var objDate = isNaN(diff) ? NaN : {
        diff: diff,
        ms: Math.floor(diff % 1000),
        s: Math.floor(diff / 1000 % 60),
        m: Math.floor(diff / 60000 % 60),
        h: Math.floor(diff / 3600000 % 24),
        d: Math.floor(diff / 86400000)
    };
    return objDate;
}


I saved time (ahahaha) by using this jQuery countdown plugin by Keith Wood.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜