eyecatch php

PHP

【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以上)

【PHP】2つの日時差をとり、「時:分:秒」という形で表示する方法(スマート篇)

-PHP
-, ,