PHP CodeBase:将时间显示为"刚刚""n分钟/小时前"的方法详解

yipeiwu_com4年前PHP代码库
在很多场合为了显示出信息的及时性,一般会将时间显示成“刚刚”,“5分钟前”,“3小时前”等,而不是直接将时间打印出来。比如微博,SNS类应用就最长用到这个功能。而一般存储在数据库中的时间格式为 Unix时间戳,所以这里记录一个将 Unix时间戳 转化为时间轴显示的PHP函数。
函数比较简单,直接看代码就很好懂了。
复制代码 代码如下:

<?php
date_default_timezone_set('PRC');
$date = "1351836000";
echo tranTime($date);
function transfer_time($time)
{
    $rtime = date("m-d H:i",$time);
    $htime = date("H:i",$time);
    $time = time() - $time;
    if ($time < 60)
    {
        $str = '刚刚';
    }
    elseif ($time < 60 * 60)
    {
        $min = floor($time/60);
        $str = $min.'分钟前';
    }
    elseif ($time < 60 * 60 * 24)
    {
        $h = floor($time/(60*60));
        $str = $h.'小时前 '.$htime;
    }
    elseif ($time < 60 * 60 * 24 * 3)
    {
        $d = floor($time/(60*60*24));
        if($d==1)
            $str = '昨天 '.$rtime;
        else
            $str = '前天 '.$rtime;
    }
    else
    {
        $str = $rtime;
    }
    return $str;
}
?>

注意函数transfer_time()中的参数$time必须为Unix时间戳,如果不是请先用strtotime()将其转换成Unix时间戳

相关文章

详解在PHP的Yii框架中使用行为Behaviors的方法

一个绑定了行为的类,表现起来是这样的: // Step 1: 定义一个将绑定行为的类 class MyClass extends yii\base\Component { //...

PHP实现图片压缩的两则实例

本文介绍了PHP实现图片压缩的两种方法,读者可以根据具体应用参考或加以改进,以适应自身应用需求!废话不多说,主要代码部分如下: 实例1: <?php /** * d...

php cURL和Rolling cURL并发方式比较

php cURL和Rolling cURL并发方式比较

在实际项目或者自己编写小工具(比如新闻聚合,商品价格监控,比价)的过程中, 通常需要从第3方网站或者API接口获取数据, 在需要处理1个URL队列时, 为了提高性能, 可以采用cURL提...

php实现以只读方式打开文件的方法

本文实例讲述了php实现以只读方式打开文件的方法。分享给大家供大家参考。具体分析如下: php中可以通过fopen()打开一个文件,第二个参数设置为"r"表示已只读方式打开,函数返回一个...

php实现比较全的数据库操作类

本文实例讲述了php实现比较全的数据库操作类。分享给大家供大家参考。具体如下: <?php class database { private $hostname...