アクセスログを見てみると「時間の計算」に多く集中してます。
時間の計算にはそれなりに需要があるっぽいです。
前回のhttp://zeijaku.net/blogcomment/?blogcomment=201205250905はあくまで古いPHPでも大丈夫なように記載していました。
その為、date関数による2038年問題などが発生します。
2038年問題に引っかからないものを作成しましたが、PHP5.3の機能を使っていますので
PHP5.2以下だと動かない点に注意してください。
// --------------------------------------------------
// 時間 差分取得
// @ PHP5.3 Over
// --------------------------------------------------
/*
* @ $spoint = 開始時間[形式:yyyy/mm/dd hh:ii:ss]
* @ $epoint = 終了時間[形式:yyyy/mm/dd hh:ii:ss]
* @ return = 差分(秒)
*/
function timediff($spoint = false, $epoint = false)
{
$start = new DateTime($spoint);
$end = new DateTime($epoint);
$interval = $start->diff($end, true);
$d = $interval->format('%a') * 24 * 60 * 60; // spoint -> epoint 日数 => 秒数
$h = $interval->format('%h') * 60 * 60; // 時間 => 秒数
$i = $interval->format('%i') * 60; // 分 => 秒数
$s = $interval->format('%s'); // 秒数
$result = $d + $h + $i + $s;
if( $start > $end )
{
/*
* 差分がマイナスの場合はマイナス変換
*/
$result = ($result * -1);
}
return $result;
}
関連記事