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

yipeiwu_com6年前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实现合并discuz用户

PHP实现合并discuz用户

本文实例讲述了PHP合并discuz用户脚本的方法。分享给大家供大家参考。具体如下: 前几天遇到一个需要将两个discuz合并的项目,一个用户级别在12万左右,一个是1万8.不用说肯定是...

一个简单的php路由类

本文实例为大家分享了php编写一个简单的路由类,供大家参考,具体内容如下 <?php namespace cmhc\Hcrail; class Hcrail {...

php中switch与ifelse的效率区别及适用情况分析

本文实例分析了php中switch与ifelse的效率区别及适用情况。分享给大家供大家参考。具体分析如下: PHP中的这两个方法都是用于判断值是否满足条件,如果满足/不满足做出不同行为动...

php中DOMDocument简单用法示例代码(XML创建、添加、删除、修改)

共分四个文件,分别是创建、增加、删除、修改四个功能,变量都是写死的,改一改用$_POST方式接收就可以用了 //index.php 创建功能 复制代码 代码如下: <?php $x...

php中删除字符串中最先出现某个字符的实现代码

复制代码 代码如下: $a = "字符串";$c= explode("要删除的文字", $a, 2); $b = $c[0].$c[1]; explode (PHP 3, PHP 4,...