您现在的位置是:网站首页 > 脚本编程>
实现QQ空间、微博留言时间效果(“刚刚”、“几分钟前”、“昨天9:23”)
我们在论坛发帖、发表评论、或者是使用QQ空间发布日志、微博发表言论时,会看到发表的内容后的时间显示为“刚刚”、“3分钟前”、“昨天9:23”等,而不是直接显示具体日期和时间。
本文将介绍如何实现基于时间轴的时间的转换。
首先我们要明白时间的几个函数:
time():返回当前的 Unix 时间戳
date():格式化一个本地时间/日期。
应用举例:
date("Y-m-d H:i:s",time());
格式化当前时间,输出:2010-10-11 05:27:35
strtotime():将任何英文文本的日期时间描述解析为 Unix 时间戳.
应用举例:
echo strtotime("+1 day"), "n";
输出1天前的时间戳:1286861475
date_default_timezone_set():设定要用的默认时区.
一般我们设置北京时间:date_default_timezone_set("PRC");
理解上面几个函数后我们来写时间轴函数:
该函数的原理就是将系统当前时间与目标时间比较,得到一个差值,再将差值与时间范围(转换成秒)比较,根据其处在时间轴的范围输出不同的结果(如:5分钟前).为了便于计算,我们将时间都转换成Unix时间戳.
function tranTime($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; }
在thinkphp中是用的方法:
将上面的代码放到当前项目中的common文件夹下的common.php文件中,common文件夹中没有common.php文件可自行创建
在前台模版中调用的方法:
<span class="ptime">{$vo.time|trantime}</span>
注意:要清理缓存哦,不然会出错的。
打赏本站,你说多少就多少

本文地址:https://www.qi522.com/view/41.html
来 源:千奇博客