PHP入門 DateTimeクラス 日付/時刻値を加算/減算する(add/subメソッド)

add/subメソッドを利用することで、日付/時刻値の加算/減算も直感的に行えます。

構文:add/subメソッド

DateTime::add(DateInterval $interval): Datetime
DateTime::sub(DateInterval $interval): Datetime
$interval日付/時間間隔

add/subメソッドで加算/減算する日付/時刻は、DateIntervalクラスで表します。

構文:Dateintervalクラス

new DateInterval(string $duration)
$duration日付/時間を表す間隔文字列

引数$durationは「P<日付間隔>T<時間間隔>」の形式で、日付/時間間隔は「数値+単位」の形式で表します。利用できる単位は以下の通りです。

日付/時間間隔の単位(間隔指示子)

単位概要
Y
M
D
W週(Dと一緒には利用できない)
H時間
M
S

たとえば、2年2か月は「P2Y2M」、1月と5分は「P1MT5M」で表現できます。時間間隔を指定しない場合、区切り文字の「T」は省略できます。

<?php
$dt = new DateTime('2021/5/15 10:58:31');
print $dt->format('Y年m月d日 H時i分').'<br>';

$dt->add(new DateInterval('P1YT10H'));
print $dt->format('Y年m月d日 H時i分').'<br>';

$dt->sub (new DateInterval ('P3MT20M'));
print $dt->format('Y年m月d日 H時i分');
実行結果
実行結果