JavaScript倒计时时间

时间:2012-09-20 17:36:25

标签: javascript jquery date time countdown

我正在使用this plugin进行倒计时。在他的例子中,他正在倒数到澳大利亚日

$(function () {
  var countdownDate = new Date();
  countdownDate = new Date(countdownDate.getFullYear() + 1, 1 - 1, 26);
  $('#countdown').countdown({until: countdownDate});
  $('#year').text(countdownDate.getFullYear());
});

我需要它倒计时到2012年11月6日星期二美国东部时间下午8点,但我不知道如何定制它。 Date()函数让我困惑。

4 个答案:

答案 0 :(得分:2)

上面显示的Date构造函数的格式为new Date(Year, Month, Day)。但是,请记住Month参数是0索引的。这意味着1月是0,而不是1。因此,要计算到2012年11月6日,您可能希望构建如下日期:

countdownDate = new Date(2012, 10, 6);

你也可以考虑这样做:

countdownDate = new Date(2012, 11-1, 6);

这与示例所示类似。但它只会减少不必要的速度,以便更明确地指出你所指的月份。

此外,如果构造一个没有参数的Date对象,它会为您提供当前日期。所以new Date()给你一个等同于“now”的日期对象。在示例中,他们使用它来(有效地)(new Date()).getFullYear()来获取当前年份。然后他们将它递增1并将其传递给新的Date构造函数,以便获得直到“下一个”澳大利亚日的时间。

应该注意的是,澳大利亚日的例子实际上有一个错误。如果它目前是1月份,那么这一年将不必要地增加,倒计时将显示到下一年的澳大利亚日的时间。所以在这个例子中,倒计时永远不会低于26天。哎呦。 : - )

<强>更新

你的问题得到了更新,或者我第一次错过了这个问题。看起来你想在美国东部时间晚上8点结束。使用数字日期构造函数实际上非常棘手。由于JavaScript在客户端运行并默认使用“本地时间”,因此您需要明确记录时区。您可以使用setUTC版本的setter(例如setUTCHours())执行此操作,但这有点烦人并且需要几行代码。因此,最好的办法是使用Date的基于字符串的构造函数:

new Date("November 6, 2012 20:00:00 GMT -5:00")

答案 1 :(得分:0)

countdownDate = new Date(2012, 10, 6, 20, 0, 0, 0);

countdownDate = new Date("11/6/2012 8:00 PM")

请参阅https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date

答案 2 :(得分:0)

您想要使用的Date()构造函数调用将是以下之一:

new Date(dateString)
new Date(year, month, day, hours, minutes, seconds, milliseconds)

大豆,你可以做到

new Date("November 6, 2012 20:00:00 GMT -5:00")

那就可以了。

答案 3 :(得分:0)

这些行决定了它倒计时的日期:

var countdownDate = new Date();
countdownDate = new Date(countdownDate.getFullYear() + 1, 1 - 1, 26);

这里的第一行创建一个新的JavaScript Date Object。当您创建日期时,它现在默认为。

下一行使用结构将日期设置为特定时间点:

new Date(year, month, day, hours, minutes, seconds, milliseconds);

我会一步一步走: 1. 年度它以countdownDate.getFullYear()获得当前年份,并在明年添加一个 2. 1 - 1 = 0,所以选择第一个月(1月) 3. 26是特定月份的第26天

要解决此问题,您可以使用字符串表示法替换这两行:

var countdownDate = new Date("November 6, 2012 20:00:00 EST");