【PHP8.x】addメソッドの使い方

addメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

addメソッドは、DateTimeImmutableオブジェクトが表す日時に、指定された期間を加算する処理を実行するメソッドです。このメソッドは、引数として受け取ったDateIntervalオブジェクトで定義された期間、例えば「10日後」や「3ヶ月後」などを元の日時に加えます。DateTimeImmutableクラスの重要な特徴は「不変性(immutable)」であり、addメソッドを呼び出しても元のオブジェクトの状態は一切変更されません。その代わり、加算処理を行った結果として、新しい日時を表す全く新しいDateTimeImmutableオブジェクトを返します。したがって、計算結果を利用するためには、この返り値を変数に代入して扱う必要があります。この動作は、元のオブジェクト自体を変更するDateTimeクラスのaddメソッドとは対照的です。元のデータを変更しないため、意図しない副作用を防ぎ、安全に日時の計算を行うことができるという利点があります。

構文(syntax)

1<?php
2
3// 基準となる不変の日付オブジェクトを生成します。
4$originalDate = new DateTimeImmutable('2025-01-20');
5
6// 追加したい期間(例: 1ヶ月と10日)をDateIntervalオブジェクトで生成します。
7$interval = new DateInterval('P1M10D');
8
9// add()メソッドは、期間が追加された「新しい」DateTimeImmutableオブジェクトを返します。
10// 元の$originalDateオブジェクトは一切変更されません。
11$newDate = $originalDate->add($interval);
12
13// 結果を出力して比較します。
14echo '元のオブジェクト: ' . $originalDate->format('Y-m-d'); // 出力: 2025-01-20
15echo "\n";
16echo '新しいオブジェクト: ' . $newDate->format('Y-m-d');   // 出力: 2025-03-02
17

引数(parameters)

DateInterval $interval

  • DateInterval $interval: 追加する期間を指定するDateIntervalオブジェクト

戻り値(return)

DateTimeImmutable

指定された日時から指定された期間を加算した新しい DateTimeImmutable オブジェクトを返します。元のオブジェクトは変更されません。