## 日付（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.05 | 4桁の西暦
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://www.tohoho-web.com/js/date.htm