PHP で分単位の時差を取得する方法

  1. PHP で時差を分単位で取得するには date_diff() 関数を使う
  2. PHP で分単位の時間差を取得するために数式を使用する

この記事では、PHP で時差を分単位で取得する方法を紹介します。

  • date_diff() 関数を使う
  • 数式を使用する

PHP で時差を分単位で取得するには date_diff() 関数を使う

組み込みの関数 date_diff() を使って、時差を分単位で取得します。

このためには、開始日と終了日が必要である。関数 date_diff() を用いて、それらの時差を分単位で計算する。この関数を使用するための正しい構文は以下の通りである。

date_diff($DateTimeObject1, $DateTimeObject2);

組み込みの関数 date_diff() は 2つのパラメータを持つ。パラメータの詳細は以下の通りである。

パラメータ 説明
$DateTimeObject1 強制的 これは DateTime オブジェクトです。これは開始日を表す。
$DateTimeObject2 強制的 これは DateTime オブジェクトでもあり、終了日を表します。

この関数は成功した場合には開始日と終了日の差を返します。失敗した場合は FALSE を返します。

以下のプログラムは、date_diff() 関数を用いて時間差を分単位で取得する方法を示しています。

<?php 
$dateTimeObject1 = date_create('2019-06-16'); 
$dateTimeObject2 = date_create('2020-06-16'); 
  
$difference = date_diff($dateTimeObject1, $dateTimeObject2); 
echo ("The difference in days is:");
echo $difference->format('%R%a days');
echo "\n";
$minutes = $difference->days * 24 * 60;
$minutes += $difference->h * 60;
$minutes += $difference->i;
echo("The difference in minutes is:");
echo $minutes.' minutes';
?>

関数 date_diff() は 2つの日付の差を表すオブジェクトを返している。

出力:

The difference in days is:+366 days
The difference in minutes is:527040 minutes

これで、時間の差を求めることができます。

<?php 
$dateTimeObject1 = date_create('17:13:00'); 
$dateTimeObject2 = date_create('12:13:00'); 
  
$difference = date_diff($dateTimeObject1, $dateTimeObject2); 
echo ("The difference in hours is:");
echo $difference->h;
echo "\n";
$minutes = $difference->days * 24 * 60;
$minutes += $difference->h * 60;
$minutes += $difference->i;
echo("The difference in minutes is:");
echo $minutes.' minutes';
?>

出力:

The difference in hours is:5
The difference in minutes is:300 minutes

PHP で分単位の時間差を取得するために数式を使用する

PHP では、時間差を分単位で取得するための数式を使い分けることもできます。分単位の時差を取得するプログラムは以下のようになります。

<?php
$to_time = strtotime("10:42:00");
$from_time = strtotime("10:21:00");
$minutes = round(abs($to_time - $from_time) / 60,2);
echo("The difference in minutes is: $minutes minutes.");
?>

出力:

The difference in minutes is: 21 minutes

また、以下の方法で分単位の時間差を求めることもできます。

<?php
$start = strtotime('12:01:00');
$end = strtotime('13:16:00');
$minutes = ($end - $start) / 60;
echo "The difference in minutes is $minutes minutes.";
?>

出力:

The difference in minutes is 75 minutes.

関連記事 - PHP Time

  • PHP で現在の日付と時刻を取得する方法
  • comments powered by Disqus