【PHP】日付・時刻の差分を計算する例/日付・時刻を比較する例

PHPでは、日付・時刻を表すことができるDateTimeクラス、DateTimeImmutableクラスがあります。

今回は、そのクラスを使い日付・時刻の差分を計算する例と、日付・時刻を比較する例となります。なお、例ではDateTimeImmutableクラスを使用しています。

日付・時刻の差分を計算する例|diffメソッド

作成したオブジェクトの日付・時刻の差分は、diffメソッドを使い計算することができます。

以下、例となります。

指定した期間の日付の差分を計算する例

<?php
$datetime01 = new DateTimeImmutable('1928-06-14');
$datetime02 = new DateTimeImmutable('1967-10-09');

$interval = $datetime01->diff($datetime02);
echo $interval->format('期間の年月数は%y年%m月%d日、総日数で表すと%a日。');
?>

出力結果

期間の年月数は39年3月25日、総日数で表すと14361日。

現在の時刻から、指定した時刻までの差分を計算する例

<?php
$datetime01 = new DateTimeImmutable();
$datetime02 = new DateTimeImmutable('tomorrow 19:00:00');

$interval = $datetime01->diff($datetime02);
echo $interval->format('%h時間%i分%s秒');
?>

上記の例では、現在の時刻から、明日の19:00までの時間を取得しています。

diffメソッドについて

diffメソッドでは、引数に指定したオブジェクトとの日付の差分を返します。返すオブジェクトは日付の間隔をあらわすDateInterval オブジェクトとなります。

そして、日付の差分を表示するには、DateInterval オブジェクトのformatメソッドを使用します。

上記例のformatメソッドでは、日付・時刻の間隔を取得できる%y・%m・%d・%a・%h・%i・%sの文字列を利用して、フォーマット文字列を指定しました。

日付・時刻の間隔を取得できる、その他の文字列については以下のリンク先を参考にしてみてください。

PHP: DateInterval::format - Manual

日付・時刻を比較する例

DateTimeImmutableクラス、DateTimeクラスのオブジェクトは、比較演算子を使い比較することができます。

以下、例となります。

<?php
$date01 = new DateTimeImmutable('1928-06-14');
$date02 = new DateTimeImmutable('1967-10-09');

var_dump($date01 == $date02);
var_dump($date01 < $date02);
var_dump($date01 > $date02);
?>

出力結果

bool(false) 
bool(true) 
bool(false)

参照サイト・書籍

コメントまたはTwitterで返信

コメントは、以下の項目(*は必須項目)を入力し「コメントを送信」ボタンから送信お願いします。メールアドレスは公開されることはありません。Twitterで返信する場合はコチラから。