当前位置:首页 > PHP教程 > php日期 > 列表

PHP计算时间差 显示用户发表评论时间

发布:smiling 来源: PHP粉丝网  添加日期:2014-06-19 09:06:54 浏览: 评论:0 

前段时间做一个APP后台时用户要求用户的评论以xx分钟前这种格式显示,给用户以良好的体验,于是笔者写了一个函数,本函数主要是利用PHP计算两个时间之间的差值,通过差值来转换,虽然代码很简单,但是很实用.PHP实例代码如下:

  1. <?php 
  2. /** 
  3.  * 时间差计算 
  4.  * 
  5.  * @param Timestamp $time 时间差 
  6.  * @return String Time Elapsed 
  7.  * @author jakehu  
  8.  */ 
  9. function time2Units ($time
  10. $year   = floor($time / 60 / 60 / 24 / 365); 
  11. $time  -= $year * 60 * 60 * 24 * 365; 
  12. $month  = floor($time / 60 / 60 / 24 / 30); 
  13. $time  -= $month * 60 * 60 * 24 * 30; 
  14. $week   = floor($time / 60 / 60 / 24 / 7); 
  15. $time  -= $week * 60 * 60 * 24 * 7; 
  16. $day    = floor($time / 60 / 60 / 24); 
  17. $time  -= $day * 60 * 60 * 24; 
  18. $hour   = floor($time / 60 / 60); 
  19. $time  -= $hour * 60 * 60; 
  20. $minute = floor($time / 60); 
  21. $time  -= $minute * 60; 
  22. $second = $time
  23. $elapse = ''
  24.  
  25. $unitArr = array('年前'  =>'year''个月前'=>'month',  '周前'=>'week''天前'=>'day'
  26. '小时前'=>'hour''分钟前'=>'minute''秒前'=>'second' 
  27. ); 
  28.  
  29. foreach ( $unitArr as $cn => $u ) 
  30. if ( $year > 0 ) {//大于一年显示年月日 
  31. $elapse = date('Y/m/d',time()-$time); 
  32. break
  33. else if ( $$u > 0 ) 
  34. $elapse = $$u . $cn
  35. break
  36.  
  37. return $elapse
  38.  
  39. $past = 1390000000; //起点时间 
  40. $diff = time() - $past;//时间差 
  41.  
  42. echo '发表于' . time2Units($diff) . '前'
  43. ?> 

Tags: PHP计算时间差

分享到: