カテゴリ: JavaScript 更新日: 2026/01/02

JavaScriptで月末・月初を取得する方法|初心者でもわかる日付操作

JavaScriptで月末・月初を取得する方法を解説
JavaScriptで月末・月初を取得する方法を解説

先生と生徒の会話形式で理解しよう

生徒

「先生、JavaScriptで今月の月末や月初を簡単に取得する方法はありますか?」

先生

「あります。Dateオブジェクトを使うと、月末や月初の日付を簡単に計算できます。方法はとてもシンプルです。」

生徒

「具体的にはどうやってやるんですか?」

先生

「順番に見ていきましょう。まずは月初から説明します。」

1. 月初を取得する方法

1. 月初を取得する方法
1. 月初を取得する方法

月初は、単純にsetDate(1)を使うだけで取得できます。setDateは日を設定するメソッドです。


const today = new Date();
const firstDayOfMonth = new Date(today);
firstDayOfMonth.setDate(1);
console.log("今月の月初:", firstDayOfMonth);

今月の月初: Sat Nov 01 2025 ...

これだけで、その月の1日を簡単に取得できます。

2. 月末を取得する方法

2. 月末を取得する方法
2. 月末を取得する方法

月末は少しトリックがあります。翌月の1日から1日引くと、今月の最終日が簡単に求められます。


const year = today.getFullYear();
const month = today.getMonth(); // 0:1月, 11:12月
const lastDayOfMonth = new Date(year, month + 1, 0);
console.log("今月の月末:", lastDayOfMonth);

今月の月末: Sun Nov 30 2025 ...

ここでポイントはmonth + 1にして日を0にすることです。JavaScriptでは日を0に設定すると前月の最終日になります。

3. 月初・月末を関数化して使いやすくする

3. 月初・月末を関数化して使いやすくする
3. 月初・月末を関数化して使いやすくする

よく使う操作なので、関数にしておくと便利です。


function getFirstDay(year, month){
    return new Date(year, month, 1);
}

function getLastDay(year, month){
    return new Date(year, month + 1, 0);
}

console.log("月初:", getFirstDay(year, month));
console.log("月末:", getLastDay(year, month));

月初: Sat Nov 01 2025 ...
月末: Sun Nov 30 2025 ...

これで毎回同じ処理を書かなくても簡単に呼び出せます。

4. カレンダーアプリでの活用例

4. カレンダーアプリでの活用例
4. カレンダーアプリでの活用例

月初と月末を使うと、その月の日付全てをループで表示できます。例えば、カレンダーのように1日から月末までを順番に表示することが可能です。


const firstDay = getFirstDay(year, month);
const lastDay = getLastDay(year, month);

for(let d = firstDay.getDate(); d <= lastDay.getDate(); d++){
    const date = new Date(year, month, d);
    console.log(date.toDateString());
}

Sat Nov 01 2025
Sun Nov 02 2025
Mon Nov 03 2025
...
Sun Nov 30 2025

この方法を使えば、カレンダー的な日付表示が簡単に作成できます。

5. 応用:翌月・前月の月初・月末

5. 応用:翌月・前月の月初・月末
5. 応用:翌月・前月の月初・月末

翌月や前月の月初・月末も簡単に取得できます。月の値を+1や-1にすればOKです。


const nextMonthFirst = getFirstDay(year, month + 1);
const nextMonthLast = getLastDay(year, month + 1);

const prevMonthFirst = getFirstDay(year, month - 1);
const prevMonthLast = getLastDay(year, month - 1);

console.log("翌月の月初:", nextMonthFirst);
console.log("翌月の月末:", nextMonthLast);
console.log("前月の月初:", prevMonthFirst);
console.log("前月の月末:", prevMonthLast);

翌月の月初: Mon Dec 01 2025 ...
翌月の月末: Wed Dec 31 2025 ...
前月の月初: Wed Oct 01 2025 ...
前月の月末: Fri Oct 31 2025 ...

これで、任意の月の月初・月末も簡単に取得できます。

6. 注意点:タイムゾーンと時間の設定

6. 注意点:タイムゾーンと時間の設定
6. 注意点:タイムゾーンと時間の設定

日付を扱うときは、時間やタイムゾーンの影響でズレが出る場合があります。日だけを扱いたい場合は時間を0:00に揃えると安全です。


const safeFirstDay = new Date(year, month, 1, 0, 0, 0);
const safeLastDay = new Date(year, month + 1, 0, 0, 0, 0);

こうすると、日付計算で誤差が発生しにくくなります。

カテゴリの一覧へ
新着記事
New1
JavaScript
JavaScriptの正規表現で先頭・末尾を指定する^と$の使い方
New2
TypeScript
TypeScriptで非同期処理を含むES6構文をテストする方法!初心者のための徹底解説
New3
TypeScript
TypeScriptの関数に型をつける方法(引数・戻り値)を初心者向けに徹底解説!
New4
TypeScript
TypeScriptのアロー関数の書き方と使い分けを完全ガイド!初心者にもわかる関数定義の新しい形
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
TypeScript
TypeScriptとES6/ESNextの連携ガイド!最新機能を有効にするtarget設定
No.3
Java&Spring記事人気No3
JavaScript
JavaScriptプログラムの実行方法まとめ!ブラウザ・Node.js・コンソールの使い方
No.4
Java&Spring記事人気No4
JavaScript
JavaScriptの日時操作Tips!実務で役立つテクニック集
No.5
Java&Spring記事人気No5
TypeScript
TypeScriptでコメントを書く正しい書き方と使い分け【初心者向けにやさしく解説】
No.6
Java&Spring記事人気No6
JavaScript
JavaScriptの正規表現(RegExp)の基本構文と仕組みを解説
No.7
Java&Spring記事人気No7
TypeScript
TypeScriptのif文の使い方を完全ガイド!初心者でもわかる条件分岐
No.8
Java&Spring記事人気No8
JavaScript
JavaScriptで日時の差分を計算する方法|ミリ秒・日数の応用テクニック