関数の概要
PHPの date_sub 関数は、DateTime オブジェクトから指定した期間を減算するためのメソッドです。日数や時間、分、秒などの時間間隔を簡単に引くことができ、日時を操作するときに非常に便利です。WordPressのカスタム開発や日付計算が必要な場面でよく使われます。
パラメータの説明
date(必須):DateTimeオブジェクト。日付や時間の基準となるオブジェクトです。interval(必須):DateIntervalオブジェクト。減算したい期間を表現します。例:’P1D’(1日)、’PT2H’(2時間)などのISO 8601期間を使って作成します。
戻り値
date_sub は、元の DateTime オブジェクトを変更して返します。つまり、減算後の日時を反映させた同じ DateTime インスタンスです。新しいオブジェクトは返されず、元のオブジェクトが更新される点に注意してください。
使用例
基本的な使い方
<?php
$date = new DateTime('2024-06-20 15:00:00');
$interval = new DateInterval('P2D'); // 2日間
date_sub($date, $interval);
echo $date->format('Y-m-d H:i:s'); // 出力: 2024-06-18 15:00:00
?>
この例では、「2024年6月20日 15時00分」から2日間を減算し、「2024年6月18日 15時00分」として表示しています。
時間を減算する例
<?php
$date = new DateTime('2024-06-20 15:00:00');
$interval = new DateInterval('PT3H'); // 3時間
date_sub($date, $interval);
echo $date->format('Y-m-d H:i:s'); // 出力: 2024-06-20 12:00:00
?>
ここでは3時間を減算して、時刻を調整しています。
分と秒を減算する例
<?php
$date = new DateTime('2024-06-20 15:00:00');
$interval = new DateInterval('PT15M30S'); // 15分30秒
date_sub($date, $interval);
echo $date->format('Y-m-d H:i:s'); // 出力: 2024-06-20 14:44:30
?>
15分30秒を減算した日時を表示しています。分や秒の細かい調整にも便利です。
関連する関数
date_add:DateTimeオブジェクトに期間を加算するDateTime::sub:date_subと同じ動作をするDateTimeのメソッドDateTime::add:DateTimeオブジェクトに期間を加算するメソッドDateInterval: 加算・減算の時間間隔を表すクラス
まとめ
date_sub 関数は、PHPで日時を減算したいときに非常に便利な関数です。DateTime オブジェクトを直接操作し、柔軟に日数や時間、分、秒単位で減算できます。WordPressを含むPHP開発では、イベントの締め切り管理やログの期間計算など、実務で多く活用されます。減算だけでなく加算もできる date_add と併せて覚えておくと、日付操作の幅が広がります。
