JavaScriptで月と日を2桁形式で取得する方法【徹底解説】
JavaScriptで月と日を2桁形式で取得する方法
Dateオブジェクトを利用する
最も一般的な方法は、Date
オブジェクトを利用する方法です。以下のコード例のように、Date
オブジェクトの各種メソッドを使って、年、月、日を取得し、それぞれ2桁形式にフォーマットします。
const today = new Date();
const year = today.getFullYear();
const month = today.getMonth() + 1; // 月は0始まりなので、1足す
const day = today.getDate();
const formattedMonth = (month < 10) ? `0${month}` : month;
const formattedDay = (day < 10) ? `0${day}` : day;
console.log(`${year}/${formattedMonth}/${formattedDay}`);
このコードを実行すると、現在の日付が2桁形式で出力されます。例えば、2024年6月23日であれば、「2024/06/23」となります。
toLocaleDateString()メソッドを利用する
Date
オブジェクトには、日付を様々な形式で文字列に変換するtoLocaleDateString()
メソッドがあります。このメソッドを利用すれば、簡単に2桁形式の日付を取得できます。
const today = new Date();
const formattedDate = today.toLocaleDateString('ja-JP', { year: 'numeric', month: '2-digit', day: '2-digit' });
console.log(formattedDate);
補足
- 上記のコード例では、日本のロケール(
ja-JP
)を設定していますが、必要に応じて他のロケールに変更できます。 toLocaleDateString()
メソッドは、ブラウザによってサポートしている形式が異なる場合があります。詳細は、ブラウザのドキュメントを参照してください。
上記以外にも、ライブラリなどを利用して月と日を2桁形式で取得する方法があります。例えば、Moment.jsなどのライブラリを利用すると、より柔軟な日付処理が可能になります。
const today = new Date();
const year = today.getFullYear();
const month = today.getMonth() + 1; // 月は0始まりなので、1足す
const day = today.getDate();
const formattedMonth = (month < 10) ? `0${month}` : month;
const formattedDay = (day < 10) ? `0${day}` : day;
console.log(`${year}/${formattedMonth}/${formattedDay}`);
const today = new Date();
const formattedDate = today.toLocaleDateString('ja-JP', { year: 'numeric', month: '2-digit', day: '2-digit' });
console.log(formattedDate);
説明
- 上記のコードは、いずれも現在の日付を取得し、月と日を2桁形式で表示します。
- 2つ目のコードは、
Date
オブジェクトのtoLocaleDateString()
メソッドを利用して、日付を2桁形式の文字列に変換します。 - どちらのコードも、日本のロケール(
ja-JP
)を設定しているので、日本では「2024/06/23」のように出力されます。
- 上記のコードはあくまで一例であり、必要に応じて自由に改変できます。
- コードを実行するには、ブラウザの開発者ツールなどで実行する必要があります。
JavaScriptで月と日を2桁形式で取得するその他の方法
文字列操作を利用する
Date
オブジェクトから取得した日付文字列を、文字列操作ライブラリなどを利用して2桁形式に加工する方法です。
const today = new Date();
const dateString = today.toDateString();
const year = dateString.substr(0, 4);
const month = dateString.substr(5, 2);
const day = dateString.substr(8, 2);
const formattedMonth = (month < 10) ? `0${month}` : month;
const formattedDay = (day < 10) ? `0${day}` : day;
console.log(`${year}/${formattedMonth}/${formattedDay}`);
この方法は、ライブラリの導入が不要でシンプルですが、コードが冗長になりやすいという欠点があります。
正規表現を利用する
const today = new Date();
const dateString = today.toDateString();
const match = dateString.match(/(\d{4})-(\d{1,2})-(\d{1,2})/);
if (match) {
const year = match[1];
const month = match[2];
const day = match[3];
const formattedMonth = (month < 10) ? `0${month}` : month;
const formattedDay = (day < 10) ? `0${day}` : day;
console.log(`${year}/${formattedMonth}/${formattedDay}`);
} else {
console.error('日付文字列のパターンが不正です');
}
この方法は、比較的簡潔なコードで記述できますが、正規表現の構文が複雑で分かりにくいという欠点があります。
テンプレートリテラルを利用する
ES6以降で利用可能なテンプレートリテラルを用いて、2桁形式の日付文字列を生成する方法です。
const today = new Date();
const year = today.getFullYear();
const month = today.getMonth() + 1; // 月は0始まりなので、1足す
const day = today.getDate();
const formattedDate = `${year}/${month.toString().padStart(2, '0')}/${day.toString().padStart(2, '0')}`;
console.log(formattedDate);
この方法は、コードが比較的分かりやすく、可読性が高いというメリットがあります。一方、テンプレートリテラルがES6以降の機能であるため、古いブラウザでは利用できないという欠点があります。
上記以外にも、JavaScriptで月と日を2桁形式で取得する方法はいくつか存在します。それぞれの方法には、利点と欠点があるので、状況に応じて適切な方法を選択することが重要です。
javascript