最近仕事で使ったコードの紹介。
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行目で、日付・時刻形式の文字列$now
をstrtotime()
関数を使ってUnixタイムスタンプに変換。
最後に3行目、まずstrtotime()
関数の第二引数に基準日となる日付を渡す。
この時渡す値はタイムスタンプとして渡す必要があるため、あらかじめ2行目で変換処理をおこなっているというわけだ。
strtotime()
関数の第一引数には加算・減算する値を決まった書式で指定する。
書式は単純な加算・減算のほか、3行目のような特殊な書き方もある。
strtotime('+1 day', $date); // 1日後
strtotime('-1 week', $date); // 1週間前
strtotime('next Thursday', $date); // 翌週の木曜日
詳しくは公式ドキュメントを見ると良い。