JavaScript の 日付入力フォーマットには、一般的に 4 種類のタイプがあります:
タイプ | 例 |
---|---|
ISO Date | "2015-03-25" (国際標準) |
Short Date | "03/25/2015" |
Long Date | "Mar 25 2015" または "25 Mar 2015" |
Full Date | "Wednesday March 25 2015" |
ISO 形式は JavaScript の厳密な標準に従います。
他のフォーマットはあまりよく定義されておらず、ブラウザの仕様に従います。
入力形式とは無関係に、JavaScript は(デフォルトで)日付をフルテキスト文字列形式で出力します:
ISO 8601は、日付と時刻を表すための国際標準です。
ISO 8601 構文 (YYYY-MM-DD) は、推奨される JavaScript の日付フォーマットでもあります:
計算された日付は、あなたのタイムゾーンに相対的な日付です
タイムゾーンによって、上記の結果は 3月24日 か 3月25日 かの何れかになります。
ISO 日付は、日を指定せずに記述できます (YYYY-MM):
タイムゾーンにより、上記の結果は2月28日か、3月01日かの何れかになります。
ISO 日付は、月と日を指定せずに記述できます(YYYY):
タイムゾーンにより、上記の結果は 2014年12月31日か、2015年1月1日かの何れかになります。
ISO 日付は、時間、分、秒を追加して書くことができます(YYYY-MM-DDTHH:MM:SSZ):
日付と時刻は大文字の T で区切ります。
UTC 時間は大文字の Z で定義します。
時間を UTC を基準に変更する場合は、Z を削除し、代わりに +HH:MM または -HH:MM を追加します:
UTC(協定世界時)は、GMT(グリニッジ標準時)と同じです。
date-time 文字列の T や Z を省略すると、ブラウザ毎に異なる結果が得られます。
タイムゾーンを指定せずに日付を設定すると、JavaScript のブラウザのタイムゾーンが使用されます。
タイムゾーンを指定せずに日付を取得すると、結果はブラウザのタイムゾーンに変換されます。
言い換えると、GMT(グリニッジ標準時)で日付/時刻が作成されている場合でも、 ユーザが米国中部でブラウズすると、日付/時刻は CDT(Central US Daylight Time)に変換されるということです。
短い形式の日付は、次のような "MM/DD/YYYY" 構文で記述します:
一部のブラウザでは、月または日に先行するゼロを付けないとにエラーが発生することがあります:
var d = new Date("2015-3-25");
"YYYY/MM/DD" の動作は未定義です。
一部のブラウザにはフォーマットを推測しようとするものがあれば、NaN を返すものもあります。
var d = new Date("2015/03/25");
"DD-MM-YYYY" の動作も未定義です。
一部のブラウザにはフォーマットを推測しようとするものがあれば、NaN を返すものもあります。
var d = new Date("25-03-2015");
長い形式の日付、多くの場合は、次のような "MMM DD YYYY" 構文で記述します:
月と日の順序は任意です:
そして、月はフルスペル (January) でも省略形 (Jan) でも記述できます:
カンマは無視されます。 名前は大文字と小文字を区別しません:
JavaScript には、「完全な JavaScript 形式」の日付文字列を指定できます:
var d = new Date("Wed Mar 25 2015 09:56:24 GMT+0100
(W. Europe Standard Time)");
Try it Yourself »
JavaScript では、曜日名と時刻内の括弧の両方のエラーを無視します: