php获取时间间隔的方法总结,php显示论坛发帖时

有没有在论坛或者发表回复帖子的地方看到比较有意思的显示留言的方式,比如某某多少分钟前发表了什么什么,某某刚刚回复了帖子等。这是一种比较有趣的显示方式。下面本人也总结了两个个性的显示多少分钟前,多少小时前,多少天前回复或者发表了什么什么的方法。现分享代码如下:

  1. <?php 
  2. //获取时间间隔 
  3. function transDate($timestamp){ 
  4.     $curTime=time(); 
  5.     $space=$curTime-$timestamp
  6.     if($space<60){ 
  7.         $string='刚刚'
  8.         return $string
  9.     }elseif($space<3600){ 
  10.         $string=floor($space/60).'分钟前'
  11.         return $string
  12.     } 
  13.     $curtimeArray=getdate($curTime); 
  14.     $timeArray=getDate($timestamp); 
  15.     if($curtimeArray['year']==$timeArray['year']){ 
  16.         if($curtimeArray['yday']==$timeArray['yday']){ 
  17.             $format='%H:%M'
  18.             $string=strftime($format,$timestamp); 
  19.             return '今天'
  20.         }elseif(($curtimeArray['yday']-1)==$timeArray['yday']){ 
  21.             $format='%H:%M'
  22.             $string=strftime($format,$timestamp); 
  23.             return '昨天'
  24.         }else
  25.             $string=sprintf('%d月%d日',$timeArray['mon'],$timeArray['mday']); 
  26.             return $string
  27.         } 
  28.     } 
  29.     $string=sprintf('%d年%d月%d日',$timeArray['year'],$timeArray['mon'],$timeArray['mday']);   
  30.     return $string

另外一种获取时间间隔的方法:

  1. <?php 
  2. //php 获取时间间隔 
  3. function time_tran($timeInt,$format='Y-m-d H:i:s'){ 
  4.     $d=time()-$timeInt
  5.     if($d<0){ 
  6.         return $timeInt
  7.     }else
  8.         if($d<60){ 
  9.             return $d.'秒前'
  10.         }else
  11.             if($d<3600){ 
  12.                 return floor($d/60).'分钟前'
  13.             }else
  14.                 if($d<86400){ 
  15.                     return floor($d/3600).'小时前'
  16.                 }else
  17.                     if($d<259200){//3天内 
  18.                         return floor($d/86400).'天前'
  19.                     }else
  20.                         return date($format,$timeInt); 
  21.                     } 
  22.                 } 
  23.             } 
  24.         } 
  25.     } 

以上函数的使用方法如下:

  1. <?php 
  2. header('Content-type:text/html;charset=utf-8'); 
  3. $d=time()-10; 
  4. echo transDate($d);//显示结果将为:刚刚 
  5. echo '<br />'
  6. echo time_tran($d);//显示结果将为:10秒前 

转载请注明:代码家园 » php获取时间间隔的方法总结,php显示论坛发帖时

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)