霜天部落 | 关注LAMP高性能、高并发架构的设计与研究

PHP 打印“N分N秒前”等格式化时间

当前,微博类的应用非常普遍,人们随时随地用各种媒介都可以发微博。发了微博后,我们发现这条记录下会有微博的发布时间:“XX秒前,来自XX”。这种格式化的时间让人可以很清楚的知道每条博客发表的时间距此时此刻的时间。

今天我用PHP来打印这个格式化的时间:

/**
* php 打印格式化时间
* @param $post_time int 发布文章时的时间:如"2011-06-12 12:00:00"
* @return string
*/
function printTime($post_time)
{		
   $limit = time() - strtotime($post_time);

   if($limit > 0 && $limit < 60){
   		echo "{$limit}秒前";
   } 
   elseif($limit >= 60 && $limit < 3600)
   {
      $i = floor($limit / 60);
      $s = $limit % 60;            
      echo "{$i}分{$s}秒前";
   }
   elseif($limit >= 3600 && $limit < 3600*24)
   {
      $h = floor($limit / 3600);
      $_h = $limit % 3600;
      $i = ceil($_h/60);
      echo "{$h}小时{$i}分前";
   }
   elseif($limit >= (3600*24))
   {
      $d = floor($limit/(3600*24));
      echo "{$d}天前";
   }
   else
   {	
   		echo "0秒前";
   }
}

函数用法:

$time = “2011-06-12 12:00:00”;
printTime($time);