指定した時刻を表す日付オブジェクトを生成します。月は 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);
現地時刻での年、月、日、曜日、時、分、秒、ミリ秒を取得(設定)します。曜日は日曜日(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);
now=new Date(); yr=(now.getYear()<1000)? now.getYear()+1900:now.getYear();/*ブラウザによるgetYear()メソッドの違いを解決している*/ mo=now.getMonth()+1; dy=now.getDate(); hr=now.getHours(); mt=now.getMinutes(); sd=now.getSeconds(); if (yr<10) { yr="0"+yr; } if (mo<10) { mo="0"+mo; } if (dy<10) { dy="0"+dy; } if (hr<10) { hr="0"+hr; } if (mt<10) { mt="0"+mt; } if (sd<10) { sd="0"+sd; } document.write('西暦の結果 現在、'+yr+'年'+mo+'月'+dy+'日 '+hr+'時'+mt+'分'+sd+'秒です。');和暦
now=new Date(); yr=(now.getYear()<1000)? now.getYear()-88:now.getYear()-1988;/*ブラウザによるgetYear()メソッドの違いを解決している*/ mo=now.getMonth()+1; dy=now.getDate(); hr=now.getHours(); mt=now.getMinutes(); sd=now.getSeconds(); if (yr<10) { yr="0"+yr; } if (mo<10) { mo="0"+mo; } if (dy<10) { dy="0"+dy; } if (hr<10) { hr="0"+hr; } if (mt<10) { mt="0"+mt; } if (sd<10) { sd="0"+sd; } document.write('和暦の結果 現在、'+yr+'年'+mo+'月'+dy+'日 '+hr+'時'+mt+'分'+sd+'秒です。');
dd = new Date(); yy = dd.getYear(); if (yy < 2000) { yy += 1900; } #1900を差引いた値を返すブラウザに1900を足す和暦に変換は、西暦に1988を差引いた値となります。
dd = new Date(); yy = dd.getYear(); if (yy < 2000) { yy += 1900; } #1900を差引いた値を返すブラウザに1900を足す yy=yy-1988;#西暦から1988を差引いた値にすると平成の号
世界標準時(UTC)での年、月、日、曜日、時、分、秒、ミリ秒を取得(設定)します。
時間帯情報(分単位)を取得します。日本の場合は -540(-9時間)となります。
時刻を表す文字列に変換します。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
1970年1月1日0時0分0秒(UTC)からの秒数(ミリ秒単位)を取得(設定)します。下記の例では1週間後の日付を得ます。
dd = new Date(); dd.setTime(dd.getTime() + (7 * 24 * 3600 * 1000));
指定した時刻の、1970年1月1日0時0分0秒(UTC)からの秒数(ミリ秒単位)を得ます。時間帯は世界標準時、mon は0〜11で指定することに注意してください。JavaScript 1.3 では引数でミリ秒の指定も可能になりました。
string を解釈して、1970年1月1日0時0分0秒(UTC)からの秒数(ミリ秒単位)を得ます。string の形式は dd = new Date(string) の時と同じです。