ちょくちょく使うんだけど忘れて何度となくググるシリーズ。
だいたい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でやらないかと言われるんです(´・ω・`)
クライアントの負荷とかもうちょっと考えさせて欲しいんだ…。