Graent.Hu 的博客

新浪微薄腾讯微薄

最新碎语:最近感觉有些迷茫,怎么办~

您的位置:Graent.Hu 的博客 >PHP编程> PHP实现时间戳格式化:友好时间显示

PHP实现时间戳格式化:友好时间显示

        时间存储的时候,很多时候都是存储成时间戳的,这样方便很多的操作,但是显示的时候还是要还原成友好格式显示,例如可能显示需要编程 20秒前、1天前之类的方式:

/**
 * 友好的时间显示
 *
 * @param int    $sTime 待显示的时间
 * @param string $type  类型. normal | mohu | full | ymd | other
 * @param string $alt   已失效
 * @return string
 */
function friendlyDate($sTime,$type = 'ymd',$alt = 'false') {
    //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 ){
            return intval($dTime)."秒前";
        }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 intval($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);
    }elseif($type=='md'){
        return date("m-d",$sTime);
    }else{
        if( $dTime < 60 ){
            return intval($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(time());,试试看吧

我的微信:graent_hu

欢迎扫码加我和微信好友,有什么问题我们可以一起探讨,有什么需要也随时欢迎发消息给我~

转载请注明出处:

本文标题:PHP实现时间戳格式化:友好时间显示

本文链接:https://www.wlyc.cn/post-63.html

发表评论

路人甲 表情
看不清楚?点图切换

网友评论(6)

博主的高亮显示代码很好看
顾亚很博客 3年前 (2016-12-26) 回复
@顾亚很博客:谢谢 ~
9ra3nt 3年前 (2016-12-27) 回复
很好很强大
Zero 3年前 (2016-12-21) 回复
@Zero:用起来还是蛮方便的
9ra3nt 3年前 (2016-12-27) 回复
这个挺好的
企业咨询 3年前 (2016-12-09) 回复
@企业咨询:感谢来访奥~
9ra3nt 3年前 (2016-12-11) 回复