UTCメソッド

広告

UTCメソッドはUTCタイムゾーンで指定した日付/時刻の値をミリ秒形式の値に変換した値を返します。このメソッドはDateコンストラクタ関数のプロパティとして定義されています。

指定した引数の値が示すUTCタイムゾーンの日付/時刻をミリ秒形式の値に変換
して返します。

パラメータ:
  無し
戻り値:
  作成したミリ秒形式に変換した数値

UTCメソッドはDateクラスのメソッドではありませんので、次のように呼び出します。

Date.UTC(year, month, day, hour, min, sec, ms);

各項目と設定可能な値は次の通りです。

項目必須
4桁の数値。2009年なら2009。2桁の数値の場合は1900を加算必須
0から11までの数値。1月が0で12月が11なので注意が必要必須
1~31までの数値オプション(省略時は1)
0から23までの数値。午前0時が0で午後11時が23オプション(省略時は0)
0から59までの数値オプション(省略時は0)
0から59までの数値オプション(省略時は0)
ミリ秒0から999までの数値(1秒=1000ミリ秒)オプション(省略時は0)

年と月は必須ですが、それ以外の項目はオプションです。

Dateコンストラクタ関数と似ていますが、このメソッドではオブジェクトは作成せず引数に指定した値が示す日付/時刻を1970年1月1日0時0分0秒(UTC)を起点とした経過ミリ秒に変換した結果を返します。またコンストラクタ関数の場合は現地時間に基づいた値を指定しますが、UTCメソッドではUTCタイムゾーンに基づいた値を指定します。

次の例を見てください。

var d = new Date(2009, 7, 11, 5, 36, 15, 0);
var ms1 = d.valueOf();

var ms2 = Date.UTC(2009, 7, 11, 5, 36, 15, 0);

上記の場合、例えば次のような数値を取得できます。

1249936575000
1249968975000

同じ日付と時刻の値を指定していますが、上の値は指定した値が現地時間に基づいた値として解釈された場合なのに対して、下の値はUTCタイムゾーンに基づいた値として解釈されています。2つの数値の差は32,400,000ミリ秒 = 32,400秒 = 540分 = 9時間となります。

UTCタイムゾーンに基づいた値を指定し、Dateクラスのオブジェクトを作成するには次のように記述することで可能です。

var d = new Date(Date.UTC(2009, 7, 11, 5, 36, 15, 0));
サンプルコード

では簡単なサンプルで試してみます。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title>JavaScript テスト</title>
</head>
<body>

<script type="text/javascript" src="./js/script6_1.js">
</script>

</body>
</html>
function print(str){
  document.write(str + "<br />");
}

document.write("<p>");

var d1 = new Date(2009, 7, 11, 5, 36, 15, 0);
var d2 = new Date(Date.UTC(2009, 7, 11, 5, 36, 15, 0));

print(d1.toString());
print(d2.toString());

document.write("</p>");

上記を実際にブラウザ見てみると次のように表示されます。

p6-1

( Written by Tatsuo Ikura )