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

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

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

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

日付・時刻の差分は、diffメソッドを使い計算することができます。

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

$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日。

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

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

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

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

diffメソッドについて

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

日付の差分を表示するには、DateInterval クラスのformatメソッドを使用します。

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

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

PHP: DateInterval::format - Manual

日付・時刻を比較する例

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

以下、例となります。

$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で返信する場合はこちらから。