Javascriptにおいて、日付をいろいろな型に変換・フォーマットする方法をまとめました。
(準備)Dateオブジェクトの取得
Javascriptで日付データを取得するには、以下のようにDateオブジェクトのインスタンスを作成します。
//今日の日付(日時含む)データを取得して表示
const date = new Date();
console.log(date);
> Wed Jun 15 2022 06:46:14 GMT+0900 (日本標準時)
日付の型変換・フォーマット
日付(Dateオブジェクトのインスタンス)は次のとおりtoString()系のメソッドを使うといろいろな型に変換することができます。
toString()系メソッド | 変換結果 |
---|---|
date.toString() | Wed Jun 15 2022 08:09:46 GMT+0900 (日本標準時) |
date.toISOString() | 2022-06-14T23:09:46.387Z |
date.toUTCString() | Tue, 14 Jun 2022 23:09:46 GMT |
date.toLocaleString() | 2022/6/15 8:09:46 |
date.toLocaleString('en-US') | 6/15/2022, 8:09:46 AM |
date.toDateString() | Wed Jun 15 2022 |
date.toLocaleDateString() | 2022/6/15 |
date.toLocaleDateString('en-US') | 6/15/2022 |
date.toTimeString() | 08:09:46 GMT+0900 (日本標準時) |
date.toLocaleTimeString() | 8:09:46 |
date.toLocaleTimeString('en-US') | 8:09:46 AM |
確認用のサンプルコードです。
const date = new Date();
console.log(date); //Wed Jun 15 2022 08:09:46 GMT+0900 (日本標準時)
console.log(date.toString()); //Wed Jun 15 2022 08:09:46 GMT+0900 (日本標準時)
console.log(date.toISOString()); //2022-06-14T23:09:46.387Z
console.log(date.toUTCString()); //Tue, 14 Jun 2022 23:09:46 GMT
console.log(date.toLocaleString()); //2022/6/15 8:09:46
console.log(date.toLocaleString('en-US')); //6/15/2022, 8:09:46 AM
console.log(date.toDateString()); //Wed Jun 15 2022
console.log(date.toLocaleDateString()); //2022/6/15
console.log(date.toLocaleDateString('en-US')); //6/15/2022
console.log(date.toTimeString()); //08:09:46 GMT+0900 (日本標準時)
console.log(date.toLocaleTimeString()); //8:09:46
console.log(date.toLocaleTimeString('en-US')); //8:09:46 AM
yy-mm-dd型,yymmdd型への変換方法
これまで紹介したtoString系の変換ではyy-mm-dd型(例:2022-06-14)やyymmdd型(例:20220614)には直接変換できませんので、こちらの変換方法を書きます。
const date = new Date();
console.log(date); //Wed Jun 15 2022 08:09:46 GMT+0900 (日本標準時)
// yy-mm-dd型
const date1 = date.toISOString().split('T')[0];
console.log(date1); //2022-06-15
// yymmdd型
const date2 = date.toISOString().split('T')[0].replace(/-/g,"");
console.log(date2); //20220615
まずyy-mm-dd型については、toISOStringメソッドで「2022-06-14T23:09:46.387Z」という型に変換したものをsplit('T')[0]をつかって’T'の文字で2分割し前半の「2022-06-14」を取り出すという方法で実現しています。
つぎにyymmdd型ですが、こちらはyy-mm-dd型に変換したものをさらにraplace(/-/g,"")で文字列中のすべての「-」(ハイフン)を空文字「””」に変換して取得しました。
なお、raplace(/-/g,"")はreplace("変換対象","変換後文字")という書き方で文字列中の文字を変換する関数で、今回のように文字削除にも使えます。
通常だとreplace関数は最初に発見した変換対象しか変換しませんが、「/-/g」のように正規表現を使うことで対象すべての文字を変換できます。