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(中国標準時)に変換されることがあります。

JavaScriptの短日期

短日期は「MM/DD/YYYY」のような文法で使用されます:

インスタンス

var d = new Date("02/19/2018");

自分で試してみる

警告

特定のブラウザでは、先頭のゼロが無い月はエラーが発生する場合があります:

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)");

自分で試してみる