Authentication




Cancel OK
B!コメントする  2012-05-25 09:05:00 by old

時間の計算

その都度作っているような気がするので時間の計算を行うものを作って見た。
流れとしては

1.年月日時分秒を秒に変換
2.秒に変換したものを加減算することで差分を求める

という単純なもの。

// --------------------------------------------------
// 時間関数[差分]
// limittimeまでの秒数計算
// $target
time 求めたい時間の開始時間(yyyy-mm-dd hh:ii:ss)
// $limittime 求めたい時間(yyyy-mm-dd hh:ii:ss)
// --------------------------------------------------
function time
diff($targettime, $limittime)
{
// ターゲット分解
$targetdivtimetmp = explode(" ", $targettime);
$targetdivtime['ymd'] = explode("-", $targetdivtimetmp[0]);
$target
divtime['his'] = explode(":", $targetdivtimetmp[1]);
// mktimeで秒に変換
//時[h]・分[i]・秒[s]・月[m]・日[d]・年[y]、の順に入力
$targetsecond = mktime($targetdivtime['his'][0],$targetdivtime['his'][1],$targetdivtime['his'][2],$targetdivtime['ymd'][1],$targetdivtime['ymd'][2],$targetdivtime['ymd'][0]);

// リミット分解
$limit
divtimetmp = explode(" ", $limittime);
$limit
divtime['ymd'] = explode("-", $limitdivtimetmp[0]);
$limitdivtime['his'] = explode(":", $limitdivtimetmp[1]);
// mktimeで秒に変換
//時[h]・分[i]・秒[s]・月[m]・日[d]・年[y]、の順に入力
$limit
second = mktime($limitdivtime['his'][0],$limitdivtime['his'][1],$limitdivtime['his'][2],$limitdivtime['ymd'][1],$limitdivtime['ymd'][2],$limitdivtime['ymd'][0]);

/*
* 計算
* 結果がプラスかマイナスかで判断
*/
$result_time = $target_second - $limit_second;

return $result_time;
}


関数に投入する時間表記は「yyyy-mm-dd hh:ii:ss」としてまして、SQLとかの時間表記と一緒です。
投入する時間表記とかが違っていた場合のエラー対策とかはしてませんが、投入する時間の内容によっては差分だけではなく、経過時間とか色々と計算が出来ると思います。

追記 2013/05/29
http://zeijaku.net/blog_history/?search=201305231938を作成しました。


PHP  

  • コメント
  • コメントはまだありません