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) |
関連の記事