PHP DateTimeImmutableクラスのmodifyメソッドでn年前、nヶ月前の日時を計算するサンプル
環境
PHP 8.1.2
Ubuntu 22.04.1 LTS
構文
public DateTimeImmutable::modify ( string $modifier ) : DateTimeImmutable|false
$変数名 = new DateTimeImmutable(日付);
3年前を求める
$変数名->->modify(“-3 year");
2ヶ月前を求める
$変数名->modify(“-2 month");
DateTimeクラスは、ミュータブルのためここではイミュータブルのDateTimeImmutableクラスを使用しています。
年月日時分秒と週を指定しています。
modifyメソッドの引数にプラスの値を指定すると加算します。
使用例
<!DOCTYPE html> <html> <body> <?php $dateA = new DateTimeImmutable('2022-11-10 12:20:30'); // 3年前を求める $dateB = $dateA->modify("-3 year"); echo "<pre>"; print "3年前の日時を計算する結果: \n"; print $dateB->format("Y/m/d H:i:s"); echo "</pre>"; // 3ヶ月前を求める $dateC = $dateA->modify("-3 month"); echo "<pre>"; print "3ヶ月前の日時を計算する結果: \n"; print $dateC->format("Y/m/d H:i:s"); echo "</pre>"; // 3日前を求める $dateD = $dateA->modify("-3 day"); echo "<pre>"; print "3日前の日時を計算する結果: \n"; print $dateD->format("Y/m/d H:i:s"); echo "</pre>"; ?> </body> </html>
実行結果
3年前の日時を計算する結果: 2019/11/10 12:20:30 3ヶ月前の日時を計算する結果: 2022/08/10 12:20:30 3日前の日時を計算する結果: 2022/11/07 12:20:30