カテゴリ: 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の配列から要素を削除する方法(pop, shift, spliceなど)完全ガイド
New2
JavaScript
JavaScriptで配列を作成する方法!リテラル表記とArrayコンストラクタを比較
New3
TypeScript
TypeScriptのUnion型とMapped Typesの活用法!初心者向け解説
New4
JavaScript
JavaScriptのデータ型の違いを表で比較しよう(一覧解説)
人気記事
No.1
Java&Spring記事人気No1
JavaScript
JavaScriptのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.2
Java&Spring記事人気No2
TypeScript
TypeScriptでコメントを書く正しい書き方と使い分け【初心者向けにやさしく解説】
No.3
Java&Spring記事人気No3
TypeScript
TypeScriptの始め方:開発環境の構築手順【初心者向け】
No.4
Java&Spring記事人気No4
JavaScript
JavaScriptでJSONを文字列に変換する方法を初心者向けに解説!JSON.stringifyの使い方ガイド
No.5
Java&Spring記事人気No5
JavaScript
JavaScriptでJSON操作の注意点を徹底解説!初心者でも安全に扱える方法
No.6
Java&Spring記事人気No6
JavaScript
JavaScriptの配列の一部を切り出す(slice, spliceの使い方)
No.7
Java&Spring記事人気No7
TypeScript
TypeScriptで関数の型を再利用!ParametersとReturnTypeの使い方を初心者向けに徹底解説
No.8
Java&Spring記事人気No8
TypeScript
TypeScriptで使える基本の型一覧(string, number, booleanなど)