/**
* 时间差计算
*
* @param Timestamp $time
* @return String Time Elapsed
*/
function time2Units ($time,$sign)
{
$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 ( $$u > 0 )
{
if($sign == 'day'){
$elapse = $$u . $cn;
break;
}else{
//上两行只取最大时间(有分钟就舍去秒,有小时就舍去分秒,以此类推)
$elapse .= $$u . $cn;
}
}
}
return $elapse;
}
其中的$$u表示将$u作为名称,重新声明变量
假如$u的值为year,则$$u相当于$year,即输出$year的值