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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php将时间戳转换成几小时前的格式封装相关的知识,希望对你有一定的参考价值。

方法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将时间戳转换成几小时前的格式封装的主要内容,如果未能解决你的问题,请参考以下文章

js怎么把时间戳转换成几分钟几小时前

android怎么把时间戳转换成小时

php 将时间戳转换为秒(2 小时 12 分钟或 2:12:00)

将时间戳值转换为 Kotlin 中的 12/24 小时时间值

如何用c++将一个时间点转换成时间戳

php如何获得昨天23:59:59的时间戳