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クラスのインスタンスを生成しています。

DateTimeImmutableクラスは、イミュータブルで、元のオブジェクトは変更されません。
4行目のコメントにしたDateTimeクラスは、ミュータブルです。

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

 

表示形式を決めるformatメソッドの使用する文字(値)

説明
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)

△上に戻る