date_modify

関数の概要

PHPの date_modify 関数は、DateTime オブジェクトの日付と時刻を相対的に変更するためのメソッドです。指定した文字列に基づいて日時を調整できるため、日付の加減や特定の操作を簡単に行うことができます。

パラメータの説明

  • $object (DateTime): 日付や時刻の変更対象となるDateTimeオブジェクト。
  • $modify (string): 変更内容を指定する文字列。例として「+1 day」や「-2 hours」などの相対表現を用います。

戻り値

変更に成功すると、変更後の DateTime オブジェクト自身を返します。失敗した場合は FALSE を返します。

使用例

基本的な使い方

$date = new DateTime('2024-06-01 12:00:00');
date_modify($date, '+1 day');
echo $date->format('Y-m-d H:i:s'); // 2024-06-02 12:00:00

この例では、元の日時から1日プラスした結果を表示しています。

時間を減らす例

$date = new DateTime('2024-06-01 12:00:00');
date_modify($date, '-3 hours');
echo $date->format('Y-m-d H:i:s'); // 2024-06-01 09:00:00

この例では、3時間を減算して時間を調整しています。

複数回の変更を連続で行う例

$date = new DateTime('2024-06-01');
date_modify($date, '+1 month');
date_modify($date, '+10 days');
echo $date->format('Y-m-d'); // 2024-07-11

1ヶ月プラスした後、さらに10日を加算し、合計で約1ヶ月10日後の日付に変更しています。

関連する関数

  • DateTime::modify(): date_modifyと同じくDateTimeオブジェクトを変更するメソッド。
  • date_add(): DateTimeオブジェクトに日時を加算する関数。
  • date_sub(): DateTimeオブジェクトから日時を減算する関数。
  • DateTime::format(): 日付・時刻のフォーマットを整形して文字列出力するメソッド。

まとめ

date_modify はPHPのDateTimeオブジェクトの日時を柔軟に相対表現で変更できる便利な関数です。日時を増減させたり特定の条件で操作したい場合に使いやすく、実務でもよく利用されます。変更後の日時は元のオブジェクトに反映されるので、連続して複雑な日付計算も可能です。日時操作で複雑な処理を行う際はぜひ活用してください。