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.
精彩评论