1

我在 jQuery 中有这个脚本:

// Auction countdown script
$(function () {

var remaining = $("#countdown").text(),
    regex = /\d{2}/g,
    matches = remaining.match(regex),
    hours = matches[0],
    minutes = matches[1],
    seconds = matches[2],
    remainingDate = new Date();

remainingDate.setHours(hours);
remainingDate.setMinutes(minutes);
remainingDate.setSeconds(seconds);

var intvl = setInterval(function () {
    var totalMs = remainingDate.getTime(),
        hours, minutes, seconds;

remainingDate.setTime(totalMs - 1000);

hours = remainingDate.getHours();
minutes = remainingDate.getMinutes();
seconds = remainingDate.getSeconds();

if (hours === 0 && minutes === 0 && seconds === 0) {
    alert('done');
}

$("#countdown").text(
    (hours >= 10 ? hours : "0" + hours) + ":" +
    (minutes >= 10 ? minutes : "0" + minutes)  + ":" +
    (seconds >= 10 ? seconds : "0" + seconds));

}, 1000);

});

现在,这需要一个字符串并为其进行 HHMMSS 倒计时。我希望它是 DDHHMMSS,但我似乎无法让它工作。谁能指出我正确的方向?

谢谢!

4

3 回答 3

3

如果您想自己创建倒计时功能,请参考以下链接以构建正确的逻辑:

http://stuntsnippets.com/javascript-countdown/

http://www.hashemian.com/tools/javascript-countdown.htm

或者

最好使用以下jQuery 插件之一

http://www.littlewebthings.com/projects/countdown/

http://keith-wood.name/countdown.html

希望能帮助到你

万事如意

于 2012-08-01T12:07:24.633 回答
0

基本问题是 Date 对象用于日期和时间,而不是时间间隔。所以 setDate() 和 getDate() 在月份的日期上运行,而不是天数。

您可以简单地使用整数并除以一分钟的秒数、一小时的分钟数等。或者您可以实现一个 TimeInterval 对象,如下所述:

http://i-programmer.info/programming/javascript/3088-a-javascript-timeinterval-object.html

于 2012-08-01T12:14:28.493 回答
-1

用于toString

var remainingDate = new Date();
remainingDate.toString("dd-MM-yyyy HH:mm:ss");

例如,这会返回01-08-2012 14:08:22

于 2012-08-01T12:08:59.097 回答