PHPで2つの日付間の時間数を計算する 質問する

PHPで2つの日付間の時間数を計算する 質問する

2 つの日付の差を時間単位で計算するにはどうすればよいですか?

例えば:

day1=2006-04-12 12:30:00
day2=2006-04-14 11:30:00

この場合、結果は 47 時間になるはずです。

ベストアンサー1

新しい PHP バージョンではDateTime、、、DateIntervalDateTimeZone呼ばれる新しいクラスがいくつか提供されていますDatePeriod。このクラスのすばらしい点は、さまざまなタイムゾーン、うるう年、うるう秒、サマータイムなどを考慮していることです。しかも、使い方も非常に簡単です。このオブジェクトを使用すると、次のことが可能になります。

// Create two new DateTime-objects...
$date1 = new DateTime('2006-04-12T12:30:00');
$date2 = new DateTime('2006-04-14T11:30:00');

// The diff-methods returns a new DateInterval-object...
$diff = $date2->diff($date1);

// Call the format method on the DateInterval-object
echo $diff->format('%a Day and %h hours');

返される DateInterval オブジェクトは、 以外のメソッドも提供しますformat。結果を時間単位でのみ取得したい場合は、次のようにします。

$date1 = new DateTime('2006-04-12T12:30:00');
$date2 = new DateTime('2006-04-14T11:30:00');

$diff = $date2->diff($date1);

$hours = $diff->h;
$hours = $hours + ($diff->days*24);

echo $hours;

ドキュメントへのリンクは次のとおりです。

これらのクラスはすべて、日付を操作するための手続き型/関数型の方法も提供します。概要を見てみましょう。http://php.net/manual/book.datetime.php

おすすめ記事