日付オブジェクトの設定(Dateインスタンスの生成)について調べてみました。前にも似たような記事を書いたことがありますがよく理解できていません。整理してみました。
年月日を入力
まず年月日、時分秒を入力する方法です。
「1970年1月1日0時0分0秒」をnew Date()に入力します。
getTime()で1970年1月1日0時0分0秒からの経過ミリ秒を取得できます。
指定された日時を協定世界時(UTC) の 1970 年 1 月 1 日 00:00:00 からのミリ秒単位の数値で返す
var dateobj = new Date(1970,0,1,0,0,0);
document.write(dateobj);
document.write(dateobj.getTime());
document.write(dateobj);
document.write(dateobj.getTime());
ポイントは、年月日、時分秒を日本時間で入力すると、日付オブジェクトは標準時(協定世界時)でセットされるところです。
実行結果は次の通りですが、経過ミリ秒は「-32400000」となります。つまり日本時間で午前0時、0ミリ秒なので、標準時では9時間前の「-32400000」ミリ秒となります。
Thu Jan 1 00:00:00 UTC+0900 1970
-32400000
-32400000
次に経過ミリ秒を入力する方法です。
「0」ををnew Date()に入力します。
var dateobj = new Date(0);
document.write(dateobj);
document.write(dateobj.getTime());
document.write(dateobj);
document.write(dateobj.getTime());
この場合は、入力も日付オブジェクトも標準時になります。
次の通り、「0」で入力したら「0」で出力されます。
Thu Jan 1 09:00:00 UTC+0900 1970
0
0
例えば、経過時間を計算するときは、起点、終点を同じ基準で入力することに注意します。
コメント