网站地图    收藏   

主页 > php专栏 > php日期 >

PHP计算时间差 显示用户发表评论时间 - php日期

来源:自学PHP网    时间:2014-11-30 11:50 作者: 阅读:次

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

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

前段时间做一个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. { 
  11. $year   = floor($time / 60 / 60 / 24 / 365); 
  12. $time  -= $year * 60 * 60 * 24 * 365; 
  13. $month  = floor($time / 60 / 60 / 24 / 30); 
  14. $time  -= $month * 60 * 60 * 24 * 30; 
  15. $week   = floor($time / 60 / 60 / 24 / 7); 
  16. $time  -= $week * 60 * 60 * 24 * 7; 
  17. $day    = floor($time / 60 / 60 / 24); 
  18. $time  -= $day * 60 * 60 * 24; 
  19. $hour   = floor($time / 60 / 60); 
  20. $time  -= $hour * 60 * 60; 
  21. $minute = floor($time / 60); 
  22. $time  -= $minute * 60; 
  23. $second = $time; 
  24. $elapse = ''; 
  25.  
  26. $unitArr = array('年前'  =>'year', '个月前'=>'month',  '周前'=>'week', '天前'=>'day', 
  27. '小时前'=>'hour', '分钟前'=>'minute', '秒前'=>'second' 
  28. ); 
  29.  
  30. foreach ( $unitArr as $cn => $u ) 
  31. { 
  32. if ( $year > 0 ) {//大于一年显示年月日 
  33. $elapse = date('Y/m/d',time()-$time); 
  34. break; 
  35. } 
  36. else if ( $$u > 0 ) 
  37. { 
  38. $elapse = $$u . $cn; 
  39. break; 
  40. } 
  41. } 
  42.  
  43. return $elapse; 
  44. } 
  45.  
  46. $past = 1390000000; //起点时间 
  47. $diff = time() - $past;//时间差 
  48.  
  49. echo '发表于' . time2Units($diff) . '前'; 
  50. ?> 

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论