たきゃはしです

もう日常ブログにしよう

【解決】PHPで時刻・時間の加算関数、除算処理の作成


ある時間Aにある時間Bを足し算したい時ってありますよね〜?ってなにこれ意味わからんね!
例えば、12:30:00に01:30:30を足して、13:00:30!って結果を出したいって時ですね〜!これならちょっと伝わるかな!

ある時間から何分経ったか分かる!ただそれだけだ!!

時間計算ね〜PHP側で勝手に勘定してくれたらなぁ〜って思ったけど予想通りのKUAA!

時刻・時間の足し算関数のソース

/**
 * 時刻・時間の足し算関数
 * @param <Time> $source_time : 足される時間
 * @param <Time> $add_time : 足す時間
 * @return <Time> : 合計時間
 */
function _get_sum_time($source_time, $add_time) {
    $source_times = explode(":", $source_time);
    $add_times = explode(":", $add_time);
    return date("H:i:s", mktime($source_times[0] + $add_times[0], $source_times[1] + $add_times[1], $source_times[2] + $add_times[2]));
}

explode()で分解しておいて、mktime()でタイムスタンプに変換して、時分秒それぞれの演算を済ませた後、date('H:i:s')でHH:ii:ssの型で結果を返します。

どうせなら引き算もできるようにまた工夫しよっと。

時刻・時間の引き算のソース

2010-12-08 追記

$time['elapse'] = strtotime($time['last']) - strtotime($time['start']);
echo date('H:i:s', $time['elapse']);

めんどいから関数にしてない〜
タイムスタンプに変換して引き算して、時刻に戻しただけです。