现在微博很流行,微博上面的一些体验也是很好的。例如发布微博成功后显示的时间:刚刚、几秒前、几分钟前等。按照这种个格式,我用PHP也写了这样一个函数,用起来特别方便就给大家共享一下:函数:

   
   
   
   
  1. /** 
  2.   * 友好的时间显示 
  3.   *  
  4.   * @param int    $sTime 待显示的时间 
  5.   * @param string $type  类型. normal | mohu | full | ymd | other 
  6.   * @param string $alt   已失效 
  7.   * @return string 
  8.   */ 
  9.  function friendlyDate($sTime,$type = 'normal',$alt = 'false') { 
  10.     //sTime=源时间,cTime=当前时间,dTime=时间差 
  11.     $cTime      =   time(); 
  12.     $dTime      =   $cTime - $sTime
  13.     //$dDay     =   intval(date("Ymd",$cTime)) - intval(date("Ymd",$sTime)); 
  14.     $dDay       =   $dTime/3600/24; 
  15.     $dYear      =   intval(date("Y",$cTime)) - intval(date("Y",$sTime)); 
  16.     //normal:n秒前,n分钟前,n小时前,日期 
  17.     if($type=='normal'){ 
  18.         if$dTime < 60 ){ 
  19.             return $dTime."秒前"
  20.         }elseif$dTime < 3600 ){ 
  21.             return intval($dTime/60)."分钟前"
  22.         }elseif$dTime >= 3600 && $dDay == 0  ){ 
  23.             //return intval($dTime/3600)."小时前"; 
  24.             return '今天'.date('H:i',$sTime); 
  25.         }elseif($dYear==0){ 
  26.             return date("m月d日 H:i",$sTime); 
  27.         }else
  28.             return date("Y-m-d H:i",$sTime); 
  29.         } 
  30.     }elseif($type=='mohu'){ 
  31.         if$dTime < 60 ){ 
  32.             return $dTime."秒前"
  33.         }elseif$dTime < 3600 ){ 
  34.             return intval($dTime/60)."分钟前"
  35.         }elseif$dTime >= 3600 && $dDay == 0  ){ 
  36.             return intval($dTime/3600)."小时前"
  37.         }elseif$dDay > 0 && $dDay<=7 ){ 
  38.             return intval($dDay)."天前"
  39.         }elseif$dDay > 7 &&  $dDay <= 30 ){ 
  40.             return ceil($dDay/7) . '周前'
  41.         }elseif$dDay > 30 ){ 
  42.             return ceil($dDay/30) . '个月前'
  43.         } 
  44.     //full: Y-m-d , H:i:s 
  45.     }elseif($type=='full'){ 
  46.         return date("Y-m-d , H:i:s",$sTime); 
  47.     }elseif($type=='ymd'){ 
  48.         return date("Y-m-d",$sTime); 
  49.     }else
  50.         if$dTime < 60 ){ 
  51.             return $dTime."秒前"
  52.         }elseif$dTime < 3600 ){ 
  53.             return intval($dTime/60)."分钟前"
  54.         }elseif$dTime >= 3600 && $dDay == 0  ){ 
  55.             return intval($dTime/3600)."小时前"
  56.         }elseif($dYear==0){ 
  57.             return date("Y-m-d H:i:s",$sTime); 
  58.         }else
  59.             return date("Y-m-d H:i:s",$sTime); 
  60.         } 
  61.     } 
  62.  } 

调用的话也是特别方便的,直friendlyDate(参数) 把相应的参数写进去就行了!