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