コンストラクタ関数

広告

Dateクラスのコンストラクタ関数は4つが用意されています。

Dateクラスのオブジェクトを生成します。

パラメータ:
  ms  日付と時刻をミリ秒で指定
  str  日付と時刻を表す文字列で指定
  year  年
  month  月
  day  日
  hour  時
  min  分
  sec  秒
  ms  ミリ秒

Dateクラスのオブジェクトを作成するコンストラクタ関数です。Dateクラスのオブジェクトは日付と時刻に関する情報を持ちますが、用意された4つのコンストラクタを使うことで初期値を設定することができます。

Dateクラスの内部では、1970年1月1日0時0分0秒(UTC)を起点とした経過ミリ秒という数値だけを持っているようです。その値を呼び出されるメソッドに応じて現地時間のタイムゾーンで表示したりします。

引数を省略してDateコンストラクタ関数を呼び出すと、現在の日付と時刻でオブジェクトを作成します。

var d = new Date();

引数にミリ秒の値を整数で指定した場合、1970年1月1日0時0分0秒(UTC)を起点とした、そこから指定したミリ秒が経過した日時と時刻でオブジェクトを作成します。

var d = new Date(18000);

引数に文字列を指定した場合、日時と時刻を表している文字列として解釈し、その日時と時刻でオブジェクトを作成します。どのような形式ならいいということは定められていません。

var d = new Date("2009/08/10 14:24:32")

最後に日時と日付に関する値を個々に設定してオブジェクトを作成する場合です。

var d = new Date(2009, 8, 10, 14, 24, 32, 800)

特に指定しなければUTCではなく現時時間に基づいた日時と時刻として扱われます。

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

項目必須
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)

年と月は必須ですが、それ以外の項目はオプションです。またここで指定した値はUTCではなく現地時間に基づいて指定された値として扱われます。

関数として呼び出した場合

Dateクラスのコンストラクタ関数をnew演算子を付けずに関数として呼び出すと、現在の日付と時刻を表す文字列を返します。

var str = Date();

引数に値を指定しも無視されますので注意して下さい。

Dateコンストラクタ関数のプロパティ

Dateコンストラクタ関数ではプロパティとしてDate.UTCメソッドとDate.parseメソッドが定義されています。詳しくは「Date.UTCメソッド」と「Date.parseメソッド」を参照して下さい。

サンプルコード

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

<!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/script1_1.js">
</script>

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

document.write("<p>");

print(new Date());
print(new Date(18000));
print(new Date("2009/08/10 14:24:32"));
print(new Date("2009/08/10 14:24:32 GMT-0800"));
print(new Date("2009/08/10 14:24:32 UTC-0800"));
print(new Date(2005, 3));

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

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

p1-1

( Written by Tatsuo Ikura )