PHP计算时间差简洁写法

//$time为时间差的值
//例如:
$times=1525111200;
$now=time();
$time=$noe-$times;
//$time=43771;

formatTime($time);

function formatTime($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 = '';
   //创建年,月,周,天,小S。分,秒,对应的上分变量名称,下标对应的是年,月,周
   $unitArr = array('年'  =>'year', '个月'=>'month',  '周'=>'week', '天'=>'day',
                    '小时'=>'hour', '分钟'=>'minute', '秒'=>'second'
                    );
   //遍历创建好的数组,
   foreach ( $unitArr as $cn => $u )
   {    
       // 使用魔法变量,来获取当前时间属于哪个时间段的时间差
       //  例如:   $$u="year"; 
       //  相当于  $u=$year;$year=1;
       //  所以$u=1;
       //  如果计算出来的结果大于0,说明是属于当前时间段的
       if ( $$u > 0 )
       {
       //$elapse=1年;
           $elapse = $$u . $cn;
           //跳出循环。
           break;
       }
   }
   返回数据
   return $elapse;
}  

猜你喜欢

转载自blog.csdn.net/weixin_42135441/article/details/82743950