日付(Date)

[up] [prev] [next]

■ 一覧

Date(), getDate(), getDay(), getFullYear(), getHours(), getMilliseconds(), getMinutes(), getMonth(), getSeconds(), getTime(), getTimezoneOffset(), getUTCDate(), getUTCDay(), getUTCFullYear(), getUTCHours(), getUTCMilliseconds(), getUTCMinutes(), getUTCMonth(), getUTCSeconds(), getUTCYear(), getYear(), parse(), setDate(), setFullYear(), setHours(), setMilliseconds(), setMinutes(), setMonth(), setSeconds(), setTime(), setUTCDate(), setUTCFullYear(), setUTCHours(), setUTCMilliseconds(), setUTCMinutes(), setUTCMonth(), setUTCSeconds(), setUTCYear(), setYear(), toGMTString(), toLocaleString(), toString(), toUTCString(), toVarDate(), Date.UTC()

日付オブジェクト

date = new Date(...) (e3/N2)

指定した時刻を表す日付オブジェクトを生成します。月は 0〜11 の範囲で指定してください。

dd = new Date(1999, 11, 31);
dd = new Date(1999, 11, 31, 23, 59, 59);
dd = new Date("Dec 31, 1999 23:59:59");
dd = new Date("December 31, 1999 23:59:59");

以下の形式も使用可能ですが、Netscape Navigator 2.0 では月を 0〜11 で記述します。

dd = new Date("1999/12/31 23:59:59");
dd = new Date("12/31/1999 23:59:59");
dd = new Date("99/12/31 23:59:59");
dd = new Date("12/31/99 23:59:59");

時刻を省略した場合は現在の時刻となります。

dd = new Date();

JavaScript 1.3 では、ミリ秒の指定も可能になりました。

dd = new Date(1999, 11, 31, 23, 59, 59, 999);

日付情報の取得と設定

date.getFullYear() (e4/N406)
date.setFullYear(year) (e4/N406)
date.getYear() (e3/N2)
date.setYear(year) (e3/N2)
date.getMonth() (e3/N2)
date.setMonth(mon) (e3/N2)
date.getDate() (e3/N2)
date.setDate(date) (e3/N2)
date.getDay() (e3/N2)
date.getHours() (e3/N2)
date.setHours(hour) (e3/N2)
date.getMinutes() (e3/N2)
date.setMinutes(min) (e3/N2)
date.getSeconds() (e3/N2)
date.setSeconds(sec) (e3/N2)
date.getMilliseconds() (e4/N406)
date.setMilliseconds(msec) (e4/N406)

現地時刻での年、月、日、曜日、時、分、秒、ミリ秒を取得(設定)します。曜日は日曜日(0)〜土曜日(6)までの値。月は0〜11(1月が0)で指定します。

getFullYear() や setFullYear() は常に 1998 や 2001 などの西暦を扱いますが、ちょっと古いブラウザでサポートされていません。

getYear() は 1999年までは 1900年からの差分を返します。2000年以降はブラウザにより動作がまちまちです。NN3.0 や IE3.0 では1900年からの差分を返します。NN4.0 や、それを真似た IE4.0 で4桁の西暦を返すように変更されましたが、評判が悪かったので、NN4.06 では仕様を元に戻しました。IE は変更したままです。(ころころと仕様変更してほしくないものです)

ブラウザ動作
NN2.*1900年からの差分
NN3.0〜NN4.054桁の西暦
NN4.06〜1900年からの差分
IE3.*1900年からの差分
IE4.*〜4桁の西暦

YYYY/MM/DD 形式の時刻を表示するおススメの記述は以下のようになります。

dd = new Date();
yy = dd.getYear();
mm = dd.getMonth() + 1;
dd = dd.getDate();
if (yy < 2000) { yy += 1900; }
if (mm < 10) { mm = "0" + mm; }
if (dd < 10) { dd = "0" + dd; }
document.write(yy + "/" + mm + "/" + dd);
date.getUTCFullYear() (e4/N406)
date.setUTCFullYear(year) (e4/N406)
date.getUTCYear() (e4/N406)
date.setUTCYear(year) (e4/N406)
date.getUTCMonth() (e4/N406)
date.setUTCMonth(month) (e4/N406)
date.getUTCDate() (e4/N406)
date.setUTCDate(date) (e4/N406)
date.getUTCDay() (e4/N406)
date.getUTCHours() (e4/N406)
date.setUTCHours(hour) (e4/N406)
date.getUTCMinutes() (e4/N406)
date.setUTCMinutes(min) (e4/N406)
date.getUTCSeconds() (e4/N406)
date.setUTCSeconds(sec) (e4/N406)
date.getUTCMilliseconds() (e4/N406)
date.setUTCMilliseconds(msec) (e4/N406)

世界標準時(UTC)での年、月、日、曜日、時、分、秒、ミリ秒を取得(設定)します。

date.getTimezoneOffset() (e3/N2)

時間帯情報(分単位)を取得します。日本の場合は -540(-9時間)となります。

文字列への変換

date.toString() (e3/N2)
date.toLocaleString() (e3/N2)
date.toGMTString() (e3/N2)
date.toUTCString() (e4/N406)
date.toVarDate() (e4)

時刻を表す文字列に変換します。toString()、toLocaleString()、toVarDate() は現地時刻、toGMTString() や toUTCString() は世界標準時刻(UTC)に変換します。

dd = new Date();
document.write(dd.toLocaleString());

文字列のフォーマットはブラウザやバージョンによってさまざまなので、注意が必要です。例えば、toLocaleString() だけでも次のようなフォーマットなどがあります。好みのフォーマットに変換するには、getFullYear() の個所で説明した方法などを用いてください。

12/31/2000 23:59:59                 // IE4/IE5
12/31/00 23:59:59                   // IE3
Sunday, December 31, 2000 23:59:59  // N4.7(Win)
Dec 31 23:59:59 2000                // N4.7(Mac)
Sun 31 Dec 2000 11:59:59 PM JST     // N4.7(UNIX)
12/31/00 23:59:59                   // N2/N3/N4.05(Win)
2000/12/31 23:59:59:GMT+09:00       // HotJava3.0

数値への変換

date.getTime() (e3/N2)
date.setTime(time) (e3/N2)

1970年1月1日0時0分0秒(UTC)からの秒数(ミリ秒単位)を取得(設定)します。下記の例では1週間後の日付を得ます。

dd = new Date();
dd.setTime(dd.getTime() + (7 * 24 * 3600 * 1000));
Date.UTC(year, mon, day, hour, min, sec) (e3/N2)

指定した時刻の、1970年1月1日0時0分0秒(UTC)からの秒数(ミリ秒単位)を得ます。時間帯は世界標準時、mon は0〜11で指定することに注意してください。JavaScript 1.3 では引数でミリ秒の指定も可能になりました。

Date.parse(string) (e3/N2)

string を解釈して、1970年1月1日0時0分0秒(UTC)からの秒数(ミリ秒単位)を得ます。string の形式は dd = new Date(string) の時と同じです。


[up] [prev] [next]
Copyright (C) 1996-2002 杜甫々
改訂版初版:2001年5月20日、最終更新:2002年1月7日
http://tohoho.wakusei.ne.jp/js/date.htm