码迷,mamicode.com
首页 > Web开发 > 详细

php将时间戳转换成几小时前的格式封装

时间:2019-03-27 21:23:36      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:时区   日期   day   格式   代码   floor   title   default   sprintf   

方法1:

技术图片
/**
 * 个性化日期显示
 * @static
 * @access public
 * @param datetime $times 日期
 * @return string 返回大致日期
 * @example 示例 ueTime(‘‘)
 */
function ueTime($times) {
    if ($times == ‘‘ || $times == 0) {
        return false;
    }
    //完整时间戳
    $strtotime = is_int($times) ? $times : strtotime($times);
    $times_day = date(‘Y-m-d‘, $strtotime);
    $times_day_strtotime = strtotime($times_day);

    //今天
    $nowdate_str = strtotime(date(‘Y-m-d‘));

    //精确的时间间隔(秒)
    $interval = time() - $strtotime;

    //今天的
    if ($times_day_strtotime == $nowdate_str) {

        //小于一分钟
        if ($interval < 60) {
            $pct = sprintf("%d秒前", $interval);
        }
        //小于1小时
        elseif ($interval < 3600) {
            $pct = sprintf("%d分钟前", ceil($interval / 60));
        } else {
            $pct = sprintf("%d小时前", floor($interval / 3600));
        }
    }
    //昨天的
    elseif ($times_day_strtotime == strtotime(date(‘Y-m-d‘, strtotime(‘-1 days‘)))) {
        $pct = ‘昨天‘ . date(‘H:i‘, $strtotime);
    }
    //前天的
    elseif ($times_day_strtotime == strtotime(date(‘Y-m-d‘, strtotime(‘-2 days‘)))) {
        $pct = ‘前天‘ . date(‘H:i‘, $strtotime);
    }
    //一个月以内
    elseif ($interval < (3600 * 24 * 30)) {
        $pct = date(‘m月d日‘, $strtotime);
    }
    //一年以内
    elseif ($interval < (3600 * 24 * 365)) {
        $pct = date(‘m月d日‘, $strtotime);
    }
    //一年以上
    else {
        $pct = date(‘Y年m月d日‘, $strtotime);
    }
    return $pct;
}
技术图片

 

 

方法2:

技术图片
<?php  
header("Content-type: text/html; charset=utf8");  
date_default_timezone_set("Asia/Shanghai");   //设置时区  
function time_tran($the_time) {  
    $now_time = date("Y-m-d H:i:s", time());  
    //echo $now_time;  
    $now_time = strtotime($now_time);  
    $show_time = strtotime($the_time);  
    $dur = $now_time - $show_time;  
    if ($dur < 0) {  
        return $the_time;  
    } else {  
        if ($dur < 60) {  
            return $dur . ‘秒前‘;  
        } else {  
            if ($dur < 3600) {  
                return floor($dur / 60) . ‘分钟前‘;  
            } else {  
                if ($dur < 86400) {  
                    return floor($dur / 3600) . ‘小时前‘;  
                } else {  
                    if ($dur < 259200) {//3天内  
                        return floor($dur / 86400) . ‘天前‘;  
                    } else {  
                        return $the_time;  
                    }  
                }  
            }  
        }  
    }  
}  
  
  
echo time_tran("2014-7-8 19:22:01");  
?>  
技术图片

 

方法3:

技术图片
function wordTime($time) {
        $time = (int) substr($time, 0, 10);
        $int = time() - $time;
        $str = ‘‘;
        if ($int <= 2){
            $str = sprintf(‘刚刚‘, $int);
        }elseif ($int < 60){
            $str = sprintf(‘%d秒前‘, $int);
        }elseif ($int < 3600){
            $str = sprintf(‘%d分钟前‘, floor($int / 60));
        }elseif ($int < 86400){
            $str = sprintf(‘%d小时前‘, floor($int / 3600));
        }elseif ($int < 2592000){
            $str = sprintf(‘%d天前‘, floor($int / 86400));
        }else{
            $str = date(‘Y-m-d H:i:s‘, $time);
        }
        return $str;
    }

php将时间戳转换成几小时前的格式封装

标签:时区   日期   day   格式   代码   floor   title   default   sprintf   

原文地址:https://www.cnblogs.com/findher/p/10610609.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!