我正在使用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()函数让我困惑。
答案 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");