上面显示的Date
构造函数格式为new Date(Year, Month, Day)
. 但是,请记住,Month
参数是 0 索引的。这意味着一月是0
,不是1
。因此,要倒计时到 2012 年 11 月 6 日,您需要这样构建日期:
countdownDate = new Date(2012, 10, 6);
你也可以考虑这样做:
countdownDate = new Date(2012, 11-1, 6);
这与示例显示的类似。但这只是不必要地减慢速度,以便更清楚地了解您所指的月份。
此外,如果您构造一个Date
不带参数的对象,它会为您提供当前日期。所以new Date()
给你一个相当于“现在”的日期对象。在示例中,他们使用 (有效地) 来获取当前年份(new Date()).getFullYear()
。然后他们将其加一并将其传递给一个新的Date
构造函数,以获得“下一个”澳大利亚日之前的时间。
需要注意的是,澳大利亚国庆日的例子实际上有一个错误。如果现在是一月,那么这一年将不必要地增加,倒计时将显示直到下一年的澳大利亚日的时间。所以在这个例子中,倒计时永远不会低于 26 天。哎呀。:-)
更新:
要么你的问题得到了更新,要么我第一次错过了这个。看起来您想在美国东部标准时间晚上 8 点结束。使用数字日期构造函数实际上非常棘手。由于 JavaScript 在客户端运行并默认使用“本地时间”,因此您需要明确注意时区。您可以使用setUTC
setter 的版本(例如setUTCHours()
)来做到这一点,但这有点烦人并且需要几行代码。所以你最好的选择是使用 Date 的基于字符串的构造函数:
new Date("November 6, 2012 20:00:00 GMT -5:00")