应用场景为文章内容具有评论功能模块,记录用户评论发表于多少秒前或分钟前等等。
文件名 test.php
/**
* 时间差计算
*
* @param Timestamp $time 时间差
* @return String
*/
function time2_units($time)
{
$year = floor($time / 60 / 60 / 24 / 365);
$time -= $year * 60 * 60 * 24 * 365;
$month = floor($time / 60 / 60 / 24 / 30);
$time -= $month * 60 * 60 * 24 * 30;
$week = floor($time / 60 / 60 / 24 / 7);
$time -= $week * 60 * 60 * 24 * 7;
$day = floor($time / 60 / 60 / 24);
$time -= $day * 60 * 60 * 24;
$hour = floor($time / 60 / 60);
$time -= $hour * 60 * 60;
$minute = floor($time / 60);
$time -= $minute * 60;
$second = $time;
$elapse = '';
$unitArr = array('年前' =>'year', '个月前'=>'month', '周前'=>'week', '天前'=>'day',
'小时前'=>'hour', '分钟前'=>'minute', '秒前'=>'second'
);
foreach ( $unitArr as $cn => $u )
{
if ( $year > 0 ) {//大于一年显示年月日
$elapse = date('Y/m/d',time()-$time);
break;
}
else if ( $$u > 0 )
{
$elapse = $$u . $cn;
break;
}
}
return $elapse;
}
// 运行
time2_units('1501900700');
cli运行
php test.php