最近仕事で使ったコードの紹介。

PHPで現在の日付に任意の日数を加算、また減算した日付を取得する方法がこちらのコード。

$now = date('Y-m-d'); // 2021-12-15
$date = strtotime($now);
$newDate = date('Y-m-d', strtotime('+1 day', $date));

echo $newDate; // 2021-12-16

コードの解説をしていこう。

まず1行目、$nowに現在の日付を2021-12-15の形式で保存する。

2行目で、日付・時刻形式の文字列$nowstrtotime()関数を使ってUnixタイムスタンプに変換。

最後に3行目、まずstrtotime()関数の第二引数に基準日となる日付を渡す。
この時渡す値はタイムスタンプとして渡す必要があるため、あらかじめ2行目で変換処理をおこなっているというわけだ。

strtotime()関数の第一引数には加算・減算する値を決まった書式で指定する。

書式は単純な加算・減算のほか、3行目のような特殊な書き方もある。

strtotime('+1 day', $date); // 1日後
strtotime('-1 week', $date); // 1週間前
strtotime('next Thursday', $date); // 翌週の木曜日

詳しくは公式ドキュメントを見ると良い。