php时间友好输出(源自thinkphp的函数)

/**

 * 友好的时间显示

 *

 * @param int    $sTime 待显示的时间

 * @param string $type  类型. normal | mohu | full | ymd | other

 * @param string $alt   已失效

 * @return string

 */

function friendlyDate($sTime,$type = 'normal',$alt = 'false') {

    if (!$sTime)

        return '';

    //sTime=源时间,cTime=当前时间,dTime=时间差

    $cTime      =   time();

    $dTime      =   $cTime - $sTime;

    $dDay       =   intval(date("z",$cTime)) - intval(date("z",$sTime));

    //$dDay     =   intval($dTime/3600/24);

    $dYear      =   intval(date("Y",$cTime)) - intval(date("Y",$sTime));

    //normal:n秒前,n分钟前,n小时前,日期

    if($type=='normal'){

        if( $dTime < 60 ){

            if($dTime < 10){

                return '刚刚';    //by yangjs

            }else{

                return intval(floor($dTime / 10) * 10)."秒前";

            }

        }elseif( $dTime < 3600 ){

            return intval($dTime/60)."分钟前";

        //今天的数据.年份相同.日期相同.

        }elseif( $dYear==0 && $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 intval($dDay/7) . '周前';

        }elseif( $dDay > 30 ){

            return intval($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);

        }

    }

}

  

你可能感兴趣的:(thinkphp)