JavaScript 日付フォーマット

JavaScript 日付入力

一般的に、JavaScriptの日付入力形式には3種類があります:

Type Example
ISO Date “2015-03-25″(国際標準)
Short Date “03/25/2015”
Long Date “Mar 25 2015” または “25 Mar 2015”

ISO形式はJavaScriptで厳密な標準に従います。

他の形式は定義があまり明確ではなく、ブラウザに依存することがあります。

JavaScript 日付出力

入力形式に関係なく、JavaScriptはデフォルトで日付を完全なテキスト文字列で出力します:

Sat Jul 06 2024 14:47:01 GMT+0900 (GMT+09:00)

JavaScript ISO 日付

ISO 8601は日付と時刻の表現のための国際標準です。

ISO 8601構文(YYYY-MM-DD)はJavaScriptの推奨日付形式でもあります:

例(完全な日付)


const d = new Date("2015-03-25");

計算される日付はあなたのタイムゾーンに対して相対的です。タイムゾーンによって、上記の結果は3月24日から3月25日の間で異なる場合があります。

ISO 日付(年と月)

ISO日付は日を指定せずに書くこともできます(YYYY-MM):


const d = new Date("2015-03");

タイムゾーンによって、上記の結果は2月28日から3月1日の間で異なる場合があります。

ISO 日付(年のみ)

ISO日付は月と日を指定せずに書くこともできます(YYYY):


const d = new Date("2015");

タイムゾーンによって、上記の結果は2014年12月31日から2015年1月1日の間で異なる場合があります。

ISO 日付(日付と時刻)

ISO日付は追加された時間、分、秒で書くこともできます(YYYY-MM-DDTHH:MM:SSZ):


const d = new Date("2015-03-25T12:00:00Z");

日付と時間は大文字のTで区切られます。

UTC時間は大文字のZで定義されます。

UTCに対して時間を変更したい場合は、Zを削除し、代わりに+HH:MMまたは-HH:MMを追加します:


const d = new Date("2015-03-25T12:00:00-06:30");

UTC(協定世界時)はGMT(グリニッジ標準時)と同じです。

日付時刻文字列でTまたはZを省略すると、異なるブラウザで異なる結果が得られることがあります。

タイムゾーン

タイムゾーンを指定せずに日付を設定する場合、JavaScriptはブラウザのタイムゾーンを使用します。

タイムゾーンを指定せずに日付を取得する場合、結果はブラウザのタイムゾーンに変換されます。

言い換えると: GMT(グリニッジ標準時)で日時が作成された場合、中央アメリカからブラウズされた場合、CDT(中央アメリカ夏時間)に変換されます。

JavaScript 短い日付

短い日付は「MM/DD/YYYY」の構文で書かれます:


const d = new Date("03/25/2015");

警告!

一部のブラウザでは、先頭にゼロのない月または日がエラーを引き起こす場合があります:


const d = new Date("2015-3-25");

“YYYY/MM/DD”の動作は未定義です。

一部のブラウザはフォーマットを推測しようとしますが、一部はNaNを返します。


const d = new Date("2015/03/25");

“DD-MM-YYYY”の動作も未定義です。

一部のブラウザはフォーマットを推測しようとしますが、一部はNaNを返します。


const d = new Date("25-03-2015");

JavaScript 長い日付

長い日付は通常、「MMM DD YYYY」の構文で書かれます:


const d = new Date("Mar 25 2015");

月と日はどちらの順序でも構いません:


const d = new Date("25 Mar 2015");

そして、月は全体で書くこともできます(January)、または略語(Jan)で書くこともできます:


const d = new Date("January 25 2015");

const d = new Date("Jan 25 2015");

コンマは無視されます。名前は大文字と小文字を区別しません:


const d = new Date("JANUARY, 25, 2015");

日付入力 – 日付の解析

有効な日付文字列がある場合、Date.parse()メソッドを使用してミリ秒に変換することができます。

Date.parse()は日付と1970年1月1日の間のミリ秒数を返します:


let msec = Date.parse("March 21, 2012");

その後、ミリ秒数を使用して日付オブジェクトに変換することができます:


let msec = Date.parse("March 21, 2012");
const d = new Date(msec);