
【PHP】開始・終了の時差を計算し「時:分:秒」という形で表示する方法
2018/04/14
タイムカードのような、開始時刻、終了時刻のデータがあるとして、その2つの時間の差が何時間何分あるかを計算し、「時:分:秒」で表示する方法。
PHPで時差を計算する方法
要はこういうこと。
開始:2013-08-29 09:00
終了:2013-08-29 15:00
この場合の経過時間は 06:00 となれば正解なのですが、これをPHPで計算する場合はどうすれば良いのか、てのが今回のお題。
最大値が24時間位内という条件があれば、かなり簡単に出来ます。
開始時刻を $from、終了時刻を $to とします。
[php]
// 日時
$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) ;
[/php]
時分秒しか表示しないので見えていませんが、内部的には 1970年1月1日 00:00:00 からの差として計算していることになります。
まぁ、若干強引ではありますが、欲しい値が取れているのでこれで良しとしましょう(えー)
関連する投稿
もっとスマートな方法はこちらへ。(要PHP5.3以上)