现在微博很流行,微博上面的一些体验也是很好的。例如发布微博成功后显示的时间:刚刚、几秒前、几分钟前等。按照这种个格式,我用PHP也写了这样一个函数,用起来特别方便就给大家共享一下:函数:
- /**
- * 友好的时间显示
- *
- * @param int $sTime 待显示的时间
- * @param string $type 类型. normal | mohu | full | ymd | other
- * @param string $alt 已失效
- * @return string
- */
- function friendlyDate($sTime,$type = 'normal',$alt = 'false') {
- //sTime=源时间,cTime=当前时间,dTime=时间差
- $cTime = time();
- $dTime = $cTime - $sTime;
- //$dDay = intval(date("Ymd",$cTime)) - intval(date("Ymd",$sTime));
- $dDay = $dTime/3600/24;
- $dYear = intval(date("Y",$cTime)) - intval(date("Y",$sTime));
- //normal:n秒前,n分钟前,n小时前,日期
- if($type=='normal'){
- if( $dTime < 60 ){
- return $dTime."秒前";
- }elseif( $dTime < 3600 ){
- return intval($dTime/60)."分钟前";
- }elseif( $dTime >= 3600 && $dDay == 0 ){
- //return intval($dTime/3600)."小时前";
- return '今天'.date('H:i',$sTime);
- }elseif($dYear==0){
- return date("m月d日 H:i",$sTime);
- }else{
- return date("Y-m-d H:i",$sTime);
- }
- }elseif($type=='mohu'){
- if( $dTime < 60 ){
- return $dTime."秒前";
- }elseif( $dTime < 3600 ){
- return intval($dTime/60)."分钟前";
- }elseif( $dTime >= 3600 && $dDay == 0 ){
- return intval($dTime/3600)."小时前";
- }elseif( $dDay > 0 && $dDay<=7 ){
- return intval($dDay)."天前";
- }elseif( $dDay > 7 && $dDay <= 30 ){
- return ceil($dDay/7) . '周前';
- }elseif( $dDay > 30 ){
- return ceil($dDay/30) . '个月前';
- }
- //full: Y-m-d , H:i:s
- }elseif($type=='full'){
- return date("Y-m-d , H:i:s",$sTime);
- }elseif($type=='ymd'){
- return date("Y-m-d",$sTime);
- }else{
- if( $dTime < 60 ){
- return $dTime."秒前";
- }elseif( $dTime < 3600 ){
- return intval($dTime/60)."分钟前";
- }elseif( $dTime >= 3600 && $dDay == 0 ){
- return intval($dTime/3600)."小时前";
- }elseif($dYear==0){
- return date("Y-m-d H:i:s",$sTime);
- }else{
- return date("Y-m-d H:i:s",$sTime);
- }
- }
- }
调用的话也是特别方便的,直接friendlyDate(参数) 把相应的参数写进去就行了!
转载于:https://blog.51cto.com/jsny821/990592