行がデータベースに追加されてからの経過時間を計算する次の関数があります。
function added_on($time){
$now = time();
$time = $now - $time;
$blocks = array (
31536000 => 'year',
2592000 => 'month',
604800 => 'week',
86400 => 'day',
3600 => 'hour',
60 => 'minute',
1 => 'second'
);
foreach ($blocks as $unit => $size) {
if ($time < $unit)
continue;
$nrOfUnits = floor($time / $unit);
return $nrOfUnits.' '.$size.(($nrOfUnits>1)?'s':'');
}
}
これに関する問題は、正確ではないことです。つまり、約 7 時間遅れの誤差があります。現在の時刻で呼び出されると、次のように返されます: 7 時間前に追加されました。関数は次のように呼び出されます。
$posted_on = strtotime($row['created_at']);
echo 'added '.added_on($posted_on).' ago';
$row['created_at']
MySQLの日付型はどこですか
ありがとうございました