上記のDate
コンストラクターの形式はnew Date(Year, Month, Day)
. ただし、Month
引数は 0-index であることに注意してください。つまり、1 月は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
次に、「次の」オーストラリアの日までの時間を取得するために、値を 1 増やして新しいコンストラクターに渡します。
オーストラリアの日の例には、実際にはバグがあることに注意してください。現在が 1 月の場合、年は不必要に増分され、カウントダウンには翌年のオーストラリア デーまでの時間が表示されます。したがって、この例では、カウントダウンが 26 日を下回ることはありません。おっと。:-)
アップデート:
あなたの質問が更新されたか、初めてこれを逃したかのどちらかです。EST の午後 8 時に終了したかったようです。数値日付コンストラクターを使用すると、実際にはかなり注意が必要です。JavaScript はクライアント側で実行され、デフォルトで「現地時間」を使用するため、タイム ゾーンを明示的に記録する必要があります。setUTC
セッターのバージョン (例: )を使用してこれを行うことができますがsetUTCHours()
、少し面倒で、数行のコードが必要です。したがって、最善の策は、Date の String ベースのコンストラクターを使用することです。
new Date("November 6, 2012 20:00:00 GMT -5:00")