DateTimeクラスのdiffメソッド

DateTimeクラスのメソッドdiffは、パラメータとして別のDateTimeオブジェクトを受け取り、日付間の差を含むDateIntervalオブジェクトを返します。差はさまざまな単位(日、月、年など)で取得できます。

構文

php$interval = $datetime1->diff($datetime2);

例

二つの日付間の差を計算します:

php<?php
  $date1 = new DateTime('2023-01-01');
  $date2 = new DateTime('2023-02-15');
  $interval = $date1->diff($date2);
  echo $interval->format('%R%a days');
?>

コード実行結果:

php'+45 days'

例

月と日での差を取得します:

php<?php
  $date1 = new DateTime('2023-03-10');
  $date2 = new DateTime('2023-05-25');
  $interval = $date1->diff($date2);
  echo $interval->format('%m months %d days');
?>

コード実行結果:

php'2 months 15 days'

例

時間を考慮した日付の比較:

php<?php
  $date1 = new DateTime('2023-01-01 10:00:00');
  $date2 = new DateTime('2023-01-01 14:30:00');
  $interval = $date1->diff($date2);
  echo $interval->format('%h hours %i minutes');
?>

コード実行結果:

php'4 hours 30 minutes'

関連項目

  • 日付と時刻をフォーマットする関数 date
  • 文字列をタイムスタンプに変換する関数 strtotime
  • 日付の間隔を表すクラス DateInterval