PHP で分単位の時差を取得する方法
Minahil Noor
2023年1月30日
この記事では、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.