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

 

PHP

Posted by arkgame