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分');