カテゴリー別アーカイブ: ピロ@hangout

PHP自作関数による時間処理

皆さん!お久しぶりです!
新卒エンジニアのピロです^^

入社から半年過ぎまして、技術力もなかなか磨かれてきたはず、、です!!
さて今日はPHP自作関数による時間処理に関して更新したいと思います!

SELECT date_column-CURRENT_TIMESTAMP AS date_column FROM date_list;

上記のような形で時間の差分をとり、残り時間を取ってきます。
そうすると下みたいな形で時間が取れるかと思います。

'12:23:55'

PostgreSQLにおける、timestamp型の時間部分は上記のような結果で出力されます。
この形式での時間の表示はよく見られるのですが、今回は上記の形式での時間表示を、
「○時△分□秒」
で出力する関数を考えます。


//関数の引数として渡す時間
$str = '12:23:55';

/* ---------------------------------------------
時間表示の変更関数
----------------------------------------------- */
function TimeMake($str){

$limit_set = explode(':', $str);

//時間
if(substr($limit_set[0], 0, 2) != '00'){

if(substr($limit_set[0], 0, 1) == '0'){
$minute = substr($limit_set[0], 1, 1).'時';
}else{
$minute = $limit_set[0].'時';
}

}

//分
if(substr($limit_set[1], 0, 2) != '00'){

if(substr($limit_set[1], 0, 1) == '0'){
$minute = substr($limit_set[1], 1, 1).'分';
}else{
$minute = $limit_set[1].'分';
}

}

//秒
//1時間以上の時は秒は表示しない。
if(substr($limit_set[0], 0, 2) == '00'){
if(substr($limit_set[2], 0, 2) != '00'){

if(substr($limit_set[2], 0, 1) == '0'){
$second = (int)substr($limit_set[2], 1, 1).'秒';
}else{
$second = (int)$limit_set[2].'秒';
}

}

}

return $hour.$minute.$second;

}

時間に関する処理って結構使うのですが、意外にパッと思い浮かばなかったりするものかと思います。
上記した関数も、ただ日本語形式に出力するだけの関数としてだけではなく、工夫次第では、
DBに登録したある期限から、現在時刻をSQLで差分として取得し、期限までの残り時間という形で取得するのに活用できたりもできますよね。