【PHP】PHPである日付から経過日数を求める

投稿者:

ちょくちょく使うんだけど忘れて何度となくググるシリーズ。

だいたいDB上で日付型で持ってる日付から、何日経過したのか計算してやりたいケースが多いです。

ソースコード

$show_date = '2017-12-23';
$show_date_timestamp = strtotime($show_date);
$past_days = intval((abs(time() - $show_date_timestamp)) / (60 * 60 * 24));

このstrtotime()でunixタイムスタンプに変換。
time()にて現在のunixタイムスタンプを取得して、
abs()にて差分の絶対値に変換したものを
最後に60秒*60分*24時間で割ります。

1日経過してない場合に経過時間だけ欲しい場合は

$past_second = (abs(time() - $show_date_timestamp));
$oneday = 60 * 60 * 24;
if($past_second < $oneday){
    $result = $past_second / (60 * 60);
}else{
    $result = $past_second / $oneday;
}

このように対応します。

こうやったんですが、実のところはPHPでやらずに
twitterとかfacebookのタイムラインをボケーっと眺めてると経過時間がカウントされていく様に、jQueryでやらないかと言われるんです(´・ω・`)
クライアントの負荷とかもうちょっと考えさせて欲しいんだ…。

コメントを残す