【PHP】開始・終了の時差を計算し「時:分:秒」という形で表示する方法
2018/04/14
タイムカードのような、開始時刻、終了時刻のデータがあるとして、その2つの時間の差が何時間何分あるかを計算し、「時:分:秒」で表示する方法。
PHPで時差を計算する方法
要はこういうこと。
開始:2013-08-29 09:00
終了:2013-08-29 15:00
この場合の経過時間は 06:00 となれば正解なのですが、これをPHPで計算する場合はどうすれば良いのか、てのが今回のお題。
最大値が24時間位内という条件があれば、かなり簡単に出来ます。
開始時刻を $from、終了時刻を $to とします。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
// 日時 $from = "2013-08-29 09:00"; $to = "2013-08-29 15:00"; // 日時からタイムスタンプを作成 $fromSec = strtotime($from); $toSec = strtotime($to); // 秒数の差分を求める $differences = $toSec - $fromSec; // フォーマットする $result = gmdate("H:i:s", $differences) ; |
時分秒しか表示しないので見えていませんが、内部的には 1970年1月1日 00:00:00 からの差として計算していることになります。
まぁ、若干強引ではありますが、欲しい値が取れているのでこれで良しとしましょう(えー)
関連する投稿
もっとスマートな方法はこちらへ。(要PHP5.3以上)