date() と strtotime() を組み合わせて月末の日付を取得します。
今月の末尾を取得
var_dump(date('Y-m-d',strtotime('last day of this month')));
解説
date()関数
例 2022/1/10の午前5時に実行したとします
date("Y/m/d H:i:s"); // 2022/10/01 05:00:00
date("Y/m/10"); // 2022/10/10 10日を指定することもできる
第1引数 → フォーマット
第2引数 → タイムスタンプ(省略可)
※第2引数を指定しなかった場合は「現在の日時」が第1引数のフォーマットで取得されます。
フォーマットの一部を紹介
フォーマット | 結果 |
---|---|
Y | 年4桁 |
y | 年2桁 |
L | 閏年かどうか(1が閏年で0が閏年ではない) |
m | 月(一桁の場合は先頭に0をつける) |
n | 月(一桁の場合でも先頭に0をつけない) |
d | 日(一桁の場合は先頭に0をつける) |
j | 日(一桁の場合でも先頭に0をつける) |
H | 時間(24時間単位で一桁の場合は先頭をつける) |
i | 分 (一桁の場合は先頭に0をつける) |
s | 秒 (一桁の場合は先頭に0をつける) |
strtotime()関数
例 2022/1/10の午前5時に実行したとします
date("Y/m/d H:i:s", strtotime('+1 day')); // 2022/01/11
date("Y/m/d", strtotime('first day of this month')); // 2022/01/01
第1引数 → 日時
第2引数 → タイムスタンプ(省略可)
※第2引数を指定しなかった場合は「現在」を基準に、第1引数で指定した日時のタイムスタンプが取得されます。
日時指定の一部を紹介
日時指定 | 取得できる日時 |
---|---|
tommorw | 明日 |
yesterday | 昨日 |
+1 day | 1日後 |
-1 day | 1日前 |
+1 week | 1週間後 |
-1 week | 1週間前 |
+1 month | 1カ月後 |
-1 month | 1カ月前 |
+1 year | 1年後 |
-1 year | 1年前 |
Monday | 次の月曜日 |
last Monday | 前の月曜日 |
first day of this month | 月の最初の日 |
last day of this month | 月の最後の日 |