はじめてのPHP!月初・月末を取得する方法を解説

phpで月末月初の日付を取得する方法をご存知ですか?

「phpで月末月初の日付を取得する方法は?」
「月を指定して日付を取得する方法は?」

といった方に向けて、この記事では


【基礎】phpで月末月初の日付を取得する方法(date関数)
【基礎】phpで月末月初の日付を取得する方法(strtotime関数)
【発展】月を指定して日付を取得する方法

など、phpで月末月初の日付を取得する方法について基礎から発展的な内容について解説していきます。

目次

月初・月末の日付を取得する方法

はじめに、今月の月末月初の日付を取得する方法を紹介します。

phpでは、主にdate関数を利用した取得方法があります。

date関数を使用する方法

date関数は、引数のformatに合わせて日付の文字列を出力する関数です。

引数のフォーマットに、定義されている定数を含めることで、定義された結果を取得できます。

例として、date関数の主な定義済み定数はYやmやtがあります。

・Y:年を4 桁の数字で出力。
・m:月を先頭に0をつけた2桁の数字で出力。
・t:指定した月の日数(=月末)。
・d:日を先頭に0をつけた2桁の数字で出力。

そして、定義済み定数を利用したdate関数を用い、月末月初を取得するサンプルプログラムを以下に記載します。

// 今月初日
$first_date = date("Y-m-01");

// 今月末日
$last_date = date("Y-m-t");

echo "今月初日:" . $first_date . "n";
echo "今月末日:" . $last_date . "n";

上記サンプルプログラムの出力結果は、

今月初日:2018-11-01
今月末日:2018-11-30

となります。

strtotime関数を使用する方法

strtotime関数とは、英文形式で指定した日付を時間(タイムスタンプ)に変換する関数です。

例えば、"first day of this month"や"last day of this month"をstrtotime関数の引数に渡せば、その英文にあった時間(タイムスタンプ)を取得できます。

そして、前述したdate関数の第二引数に指定日時のタイムスタンプを渡すことで、その指定日時から日付文字列を取得することも可能です。

// 今月初日
$first_date = date("Y-m-d", strtotime("first day of this month"));

// 今月末日
$last_date = date("Y-m-d", strtotime("last day of this month"));

echo "今月初日:" . $first_date . "n";
echo "今月末日:" . $last_date . "n";

上記サンプルプログラムの出力結果は、

今月初日:2018-11-01
今月末日:2018-11-30

となります。

strtotime関数の引数に指定している"first day of this month"や"last day of this month"は、それぞれ"今月初日"、"今月末日"を取得する英文です。

そして、strtotime関数で取得してきた時間(タイムスタンプ)を用いて、月末月初の日付を取得できていることが確認できます。

月を指定して取得する方法

場合によっては先月や翌月など、月を指定して月末月初の日付を取得したい時があると思います。

その時のための方法を以下で解説しようと思います。

先に、サンプルプログラムを記載します。

// 月を指定
$month = '2018-08';
$first_date = date('Y-m-d', strtotime('first day of ' . $month));
$last_date = date('Y-m-d', strtotime('last day of ' . $month));

echo "指定月の初日:" . $first_date . "n";
echo "指定月の末日:" . $last_date . "n";

上記サンプルプログラムでは、date関数とstrtotime関数を用いて、$monthで指定した月の月末月初の日付を取得しています。

実はstrtotime関数の英文では、’first day of 2018-08’という指定方法もできるのです。

それでは、上記サンプルプログラムの出力結果を確認しましょう。

指定月の初日:2018-08-01
指定月の末日:2018-08-31

出力結果から、正しく指定付きの月末月初の日付が取れていることが確認できます。

まとめ

この記事では、phpで月末月初の日付を取得する方法をサンプルプログラムを用いて解説しました。

月末月初の日付を取得するためには、date関数を利用することが一般的です。

また、strtotime関数も合わせて用いいることで指定月の日付も取得することができます。

今回を機にphpでの日付の取得方法をぜひマスターしてください!

この記事を書いた人

侍エンジニア塾は「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。侍テック編集部では技術系コンテンツを中心に有用な情報を発信していきます。

目次