date_sub

関数の概要

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 と併せて覚えておくと、日付操作の幅が広がります。