2 つの日付の差を時間単位で計算するにはどうすればよいですか?
例えば:
day1=2006-04-12 12:30:00
day2=2006-04-14 11:30:00
この場合、結果は 47 時間になるはずです。
ベストアンサー1
新しい PHP バージョンではDateTime
、、、DateInterval
とDateTimeZone
呼ばれる新しいクラスがいくつか提供されています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