【超便利】JavaScriptで月末日を取得する3つのライフハック
JavaScriptで月末日を取得するにはいくつかの方法があります。
方法 1: DateオブジェクトのgetMonth()とsetDate()メソッドを使用する
- 現在の日付を取得するためにDateオブジェクトを作成します。
- getMonth()メソッドを使用して、現在の日付の月を取得します。
- setDate()メソッドを使用して、日付を1日に設定します。
- 月が変わっていない場合は、setDate()メソッドを使用して日付を1ずつ増やし、月が変わるまで4と5を繰り返します。
- 月が変わったら、その日付は月末日となります。
例
function getLastDayOfMonth(date) {
const month = date.getMonth();
date.setDate(1);
while (date.getMonth() === month) {
date.setDate(date.getDate() + 1);
}
return date.getDate() - 1;
}
const today = new Date();
const lastDayOfMonth = getLastDayOfMonth(today);
console.log(lastDayOfMonth); // 31
toLocaleDateString()メソッドは、ロケールに基づいて日付を文字列に変換します。このメソッドは、月末日のみを取得したい場合に便利です。
function getLastDayOfMonth(date) {
const month = date.getMonth();
const lastDay = new Date(date.getFullYear(), month + 1, 0);
return lastDay.toLocaleDateString();
}
const today = new Date();
const lastDayOfMonth = getLastDayOfMonth(today);
console.log(lastDayOfMonth); // 2024年4月30日
方法 3: Moment.jsライブラリを使用する
Moment.jsライブラリは、日付操作を簡単にするライブラリです。
moment().endOf('month').format('YYYY-MM-DD'); // 2024-04-30
注意事項
- 上記の例では、DateオブジェクトのgetMonth()メソッドとgetFullYear()メソッドを使用していますが、これらのメソッドは0から11までの値を返すことに注意してください。
- Moment.jsライブラリを使用する場合は、事前にライブラリの読み込みが必要です。
補足
- 上記の方法は、すべて現在の月の日付を取得します。過去または未来の月の日付を取得するには、引数として日付オブジェクトを渡す必要があります。
- 上記の方法は、すべて月末日のみを取得します。月初の日付を取得するには、getMonth()メソッドを使用して1か月前の月を取得し、setDate()メソッドを使用して日付を1日に設定する必要があります。
// 方法 1: DateオブジェクトのgetMonth()とsetDate()メソッドを使用する
function getLastDayOfMonth(date) {
const month = date.getMonth();
date.setDate(1);
while (date.getMonth() === month) {
date.setDate(date.getDate() + 1);
}
return date.getDate() - 1;
}
const today = new Date();
const lastDayOfMonth = getLastDayOfMonth(today);
console.log(lastDayOfMonth); // 31
// 方法 2: DateオブジェクトのtoLocaleDateString()メソッドを使用する
function getLastDayOfMonth(date) {
const month = date.getMonth();
const lastDay = new Date(date.getFullYear(), month + 1, 0);
return lastDay.toLocaleDateString();
}
const today = new Date();
const lastDayOfMonth = getLastDayOfMonth(today);
console.log(lastDayOfMonth); // 2024年4月30日
// 方法 3: Moment.jsライブラリを使用する
moment().endOf('month').format('YYYY-MM-DD'); // 2024-04-30
実行方法
出力結果
31
2024年4月30日
2024-04-30
DateオブジェクトのgetDate()とsetDate()メソッドを使用する
function getLastDayOfMonth(date) {
const month = date.getMonth();
date.setDate(31);
while (date.getMonth() === month) {
date.setDate(date.getDate() - 1);
}
return date.getDate();
}
const today = new Date();
const lastDayOfMonth = getLastDayOfMonth(today);
console.log(lastDayOfMonth); // 31
この方法は、まず日付を31日に設定します。その後、getMonth()メソッドを使用して月を確認し、月が変わっていない場合はsetDate()メソッドを使用して日付を1ずつ減らしていきます。月が変わったら、その日付は月末日となります。
DateオブジェクトのgetDaysInMonth()メソッドを使用する
function getLastDayOfMonth(date) {
return new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate();
}
const today = new Date();
const lastDayOfMonth = getLastDayOfMonth(today);
console.log(lastDayOfMonth); // 31
この方法は、まず新しいDateオブジェクトを作成します。このオブジェクトの年と月は、元のDateオブジェクトと同じですが、日付は0になります。その後、getDate()メソッドを使用して、このオブジェクトの日付を取得します。この日付は、元のDateオブジェクトの月末日となります。
const luxon = require('luxon');
const today = luxon.DateTime.now();
const lastDayOfMonth = today.endOf('month').toJSDate().getDate();
console.log(lastDayOfMonth); // 31
Luxonライブラリは、日付操作を簡単にするライブラリです。このライブラリを使用すると、endOf('month')メソッドを使用して月末日を取得することができます。
JavaScriptで月末日を取得するには、いくつかの方法があります。どの方法を使用するかは、状況によって異なります。
javascript date