JavaScriptの日期フォーマット
JavaScriptの日期入力フォーマットには4種類があります:
タイプ | インスタンス |
---|---|
ISO 日期 | "2018-02-19" (国際標準) |
短い日付 | "02/19/2018" または "2018/02/19" |
長い日付 | "Feb 19 2018" または "19 Feb 2019" |
完全な日付 | "Monday February 25 2015" |
ISO フォーマットはJavaScript内で厳格な基準に従っています。
他の形式は明確ではありませんが、ブラウザ固有の可能性があります。
JavaScript 日期出力
入力形式に関わらず、JavaScriptはデフォルトで完全なテキスト形式の出力をします:
Mon Feb 19 2018 06:00:00 GMT+0800 (中国標準時)
JavaScript ISO 日期
ISO 8601 は日付と時間を表現する国際標準です。
ISO 8601 语法 (YYYY-MM-DD) も JavaScriptの日付フォーマットとして推奨されています:
例(完全な日付)
var d = new Date("2018-02-19");
計算された日付はあなたのタイムゾーンに対してです。
あなたのタイムゾーンに応じて、上記の結果は2月18日から2月19日までに変化します。
ISO 日期(年和月)
日付を特定の日付(YYYY-MM)で指定しなくても書ける:
var d = new Date("2015-03");
時区は2月28日から3月1日までの結果に影響を与えます。
ISO日付(年のみを含む)
日付を書く際には具体的な月と日を指定しないこともできます(YYYY):
var d = new Date("2018");
時区は2017年12月31日から2018年1月1日までの結果に影響を与えます。
ISO日付(完全な日付と時、分、秒を含む)
日付を書く際には時、分、秒を追加することもできます(YYYY-MM-DDTHH:MM:SS):
var d = new Date("2018-02-19T12:00:00");
日付と時間は大文字のTで区切られます。
UTC時間は大文字のZで定義されます。
UTCに対して時間を変更したい場合は、Zを削除し+HH:MMまたは-HH:MMで置き換えてください:
インスタンス
var d = new Date("2018-02-19T12:00:00-08:30");
UTC(協定世界時)はGMT(グリニッジ時間)と同等です。
注記:UTC(協定世界時)、世界統一時間、世界標準時間、国際協定時間とも呼ばれます。
日付-時間文字列においてTまたはZを省略すると、異なるブラウザで異なる結果が得られます。
時区
日付を設定する際に時区を指定しない場合、JavaScriptはブラウザの時区を使用します。
日付を取得する際に時区を指定しない場合、結果はブラウザの時区に変換されます。
言い換えれば、GMT(グリニッジ標準時)で作成された日付/時間が、ユーザーが中国からブラウジングを行う場合、CST(中国標準時)に変換されることがあります。
警告
特定のブラウザでは、先頭のゼロが無い月はエラーが発生する場合があります:
var d = new Date("2018-2-19");
「YYYY / MM / DD」の動作も未定義です。
一部のブラウザはフォーマットを推測しようと試み、一部は以下のように返します: NaN
。
var d = new Date("2018/02/19");
「DD-MM-YYYY」の動作も未定義です。
一部のブラウザはフォーマットを推測しようと試み、一部は以下のように返します: NaN
。
var d = new Date("19-02-2018");
JavaScriptの長日期
長日期は「MMM DD YYYY」のような文法で書かれることが多い:
インスタンス
var d = new Date("Feb 19 2018");
月と日は任意の順序で表示できます:
インスタンス
var d = new Date("19 Feb 2018");
また、月は完全な名前(January)または省略形(Jan)で書くことができます:
インスタンス
var d = new Date("February 19 2018");
インスタンス
var d = new Date("Feb 19 2018");
カンマは無視され、大文字小文字は区別されません:
インスタンス
var d = new Date("FEBRUARY, 25, 2015");
JavaScript 完全日付
JavaScript は「完全な JavaScript フォーマット」の日付文字列を受け入れます:
インスタンス
var d = new Date("Mon Feb 19 2018 06:55:23 GMT+0100 (W. Europe Standard Time)");
JavaScript は、日付名と時間の括弧内のエラーを無視します:
インスタンス
var d = new Date("Fri Mar 26 2018 09:56:24 GMT+0100 (Tokyo Time)");