PHP 日時を計算するサンプル(加算と減算)

PHPの日時を計算するサンプルです。加算と減算を行います。

目次

サンプル 日時を計算する
  フォーマットの文字

日時を計算する

public DateTimeImmutable::modify ( string $modifier ) : DateTimeImmutable|false

日時を計算するサンプルです。

<?php

$date1 = new DateTimeImmutable('2020-8-10 22:30:10');
//$date1 = new DateTime('2020-8-10 22:30:10');

// 3年後を求める
$date2 = $date1->modify("+3 year");
print $date2->format("Y/m/d H:i:s"); // 2023/08/10 22:30:10

// 3ヶ月後を求める
$date3 = $date1->modify("+3 month");
print $date3->format("Y/m/d H:i:s"); // 2020/11/10 22:30:10

// 3日前を求める
$date4 = $date1->modify("-3 day");
print $date4->format("Y/m/d H:i:s"); // 2020/08/07 22:30:10

// 3時間後を求める
$date5 = $date1->modify("+3 hour");
print $date5->format("Y/m/d H:i:s"); // 2020/08/11 01:30:10

// 3分後を求める
$date6 = $date1->modify("+3 minute");
print $date6->format("Y/m/d H:i:s"); // 2020/08/10 22:33:10

// 3秒後を求める
$date7 = $date1->modify("+3 second");
print $date7->format("Y/m/d H:i:s"); // 2020/08/10 22:30:13

// 3週間後を求める
$date8 = $date1->modify("+3 week");
print $date8->format("Y/m/d H:i:s"); // 2020/08/31 22:30:10

3行目は、指定日時をセットしDateTimeImmutableクラスのインスタンスを生成しています。

DateTimeクラスは、ミュータブルのためここではイミュータブルのDateTimeImmutableクラスを使用しています。イミュータブルは、元のオブジェクトは変更されません。
ミュータブルとイミュータブルの違い

7行目から日時の計算をしています。
年月日時分秒と週を指定しています。
modifyメソッドの引数にプラスの値を指定すると加算します。
減算する場合は、15行目のように引数にマイナス値を指定します。

以下は、PHPマニュアルのDateTimeImmutableクラスのリンクです。
https://www.php.net/manual/ja/class.datetimeimmutable.php

フォーマットの文字

フォーマットの文字
説明
Y 年4桁
m 月(01-12)
n 月(1-12)
d 日(01-31)
j 日(1-31)
H 時間(00-23)
i 分(00-59)
s 秒(00-59)
w 曜日(0が日曜日-6が土曜日)
D 曜日(Sun-Sat)

関連の記事

PHP 現在日時の取得と表示形式のサンプル
PHP 日時の差分を求める(DateTime)

△上に戻る