大多数答案似乎都集中在将日期从字符串转换为时间上。看来您主要是考虑将日期设为“ 5天前”格式,等等。对吗?
这就是我要这样做的方式:
$time = strtotime('2010-04-28 17:25:43');echo 'event happened '.humanTiming($time).' ago';function humanTiming ($time){ $time = time() - $time; // to get the time since that moment $time = ($time<1)? 1 : $time; $tokens = array ( 31536000 => 'year', 2592000 => 'month', 604800 => 'week', 86400 => 'day', 3600 => 'hour', 60 => 'minute', 1 => 'second' ); foreach ($tokens as $unit => $text) { if ($time < $unit) continue; $numberOfUnits = floor($time / $unit); return $numberOfUnits.' '.$text.(($numberOfUnits>1)?'s':''); }}
我还没有测试过,但是应该可以。
结果看起来像
event happened 4 days ago
要么
event happened 1 minute ago
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)