JavaScriptの学習・参考リファレンス/ドキュメント

JavaScript、ECMAScriptの学習と参考メモ 入門~初心者~中級者~上級者を目指して

月末と月初

JavaScriptで月末や月初を取得する方法についての解説です。

JavaScriptの日付型のインスタンスは以下で作成できます。

new Date(年を示す数値, 月を示す数値, 日を示す数値)

月を示す数値が0起算であることに注意が必要ですが(例えば3は4月を示します)、
月や日に0やマイナスの数字、あるいは13や32が指定されても日付は正しく計算されます。

日を示す数値が0であればそれはある日付1日の前日を示しますし、 月を示す数値を1減算すればそれはある日付の前月を示します。

// 起点とする日付 2020/06/15
let date = new Date(2020,5,15);
console.log(date); // Mon Jun 15 2020 00:00:00 GMT+0900 (日本標準時)

// 前日 2020/06/14
console.log(new Date(date.getFullYear(), date.getMonth(), date.getDate() - 1)); // Sun Jun 14 2020 00:00:00 GMT+0900 (日本標準時)
// 翌日 2020/06/16
console.log(new Date(date.getFullYear(), date.getMonth(), date.getDate() + 1)); // Tue Jun 16 2020 00:00:00 GMT+0900 (日本標準時)

// 前月の月初 2020/05/01
console.log(new Date(date.getFullYear(), date.getMonth() - 1, 1)); // Fri May 01 2020 00:00:00 GMT+0900 (日本標準時)
// 前月の月末 2020/05/30
console.log(new Date(date.getFullYear(), date.getMonth(), 0)); // Sun May 31 2020 00:00:00 GMT+0900 (日本標準時)

// 当月の月初 2020/06/01
console.log(new Date(date.getFullYear(), date.getMonth(), 1)); // Mon Jun 01 2020 00:00:00 GMT+0900 (日本標準時)
// 当月の月末 2020/06/30
console.log(new Date(date.getFullYear(), date.getMonth() + 1, 0)); // Tue Jun 30 2020 00:00:00 GMT+0900 (日本標準時)

// 翌月の月初 2020/07/01
console.log(new Date(date.getFullYear(), date.getMonth() + 1, 1)); // Wed Jul 01 2020 00:00:00 GMT+0900 (日本標準時)
// 翌月の月末 2020/07/30
console.log(new Date(date.getFullYear(), date.getMonth() + 2, 0)); // Fri Jul 31 2020 00:00:00 GMT+0900 (日本標準時)

// 前年年初日 2019/01/01
console.log(new Date(date.getFullYear() - 1, 0, 1)); // Tue Jan 01 2019 00:00:00 GMT+0900 (日本標準時)
// 前年年末日 2019/12/31
console.log(new Date(date.getFullYear(), 0, 0)); // Tue Dec 31 2019 00:00:00 GMT+0900 (日本標準時)
// 当年年初日 2020/01/01
console.log(new Date(date.getFullYear(), 0, 1)); // Wed Jan 01 2020 00:00:00 GMT+0900 (日本標準時)
// 当年年末日 2020/12/31
console.log(new Date(date.getFullYear(), 12, 0)); // Thu Dec 31 2020 00:00:00 GMT+0900 (日本標準時)
// 翌年年初日 2021/01/01
console.log(new Date(date.getFullYear() + 1, 0, 1)); // Fri Jan 01 2021 00:00:00 GMT+0900 (日本標準時)
// 翌年年末日 2021/12/31
console.log(new Date(date.getFullYear() + 1, 12, 0)); // Fri Dec 31 2021 00:00:00 GMT+0900 (日本標準時)
作成日 : 2020年06月28日