gblf 发表于 2015-8-30 12:30:25

PHP 计算时间差 (转)

<?php
/**
* 时间差计算
*
* @param Timestamp $time
* @return String Time Elapsed
* @author Shelley Shyan
* @copyright http://phparch.cn (Professional PHP Architecture)
*/
function time2Units ($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 ( $$u > 0 )
       {
         $elapse = $$u . $cn;
         break;
       }
   }

   return $elapse;
}

$past = 2052345678; // Some timestamp in the past
$now= time();   // Current timestamp
$diff = $now - $past;

echo '发表于' . time2Units($diff) . '前';
?>
页: [1]
查看完整版本: PHP 计算时间差 (转)