这个功能一般用在微博、博客的文章发布时间显示上。例如:在新浪微博发布了一篇微博,如果是今天发布的它会显示XX秒、XX小时前发布而不是显示具体的时间。如果转发一篇以前发布的微博则原微博显示其发布的时间。
那么如何实现呢?代码如下:
<code><span>/**格式化时间函数
*<span> @param</span> $time 需要格式化的时间戳
*/</span><span><span>function</span><span>time_format</span><span>(<span>$time</span>)</span> {</span><span>$now</span> = time();
<span>$tody</span> = strtotime(date(<span>'Y-m-d'</span>));
<span>$diff</span> = <span>$now</span> - <span>$time</span>;
<span>$str</span> = <span>''</span>;
<span>switch</span> (<span>$time</span>) {
<span>case</span><span>$diff</span> < <span>60</span>:
<span>$str</span> = <span>$diff</span> . <span>'秒前'</span>;
<span>break</span>;
<span>case</span><span>$diff</span> < <span>3600</span>:
<span>$str</span> = floor(<span>$diff</span> / <span>60</span>) . <span>'分钟前'</span>;
<span>break</span>;
<span>case</span><span>$diff</span> < (<span>3600</span> * <span>8</span>):
<span>$str</span> = floor(<span>$diff</span> / <span>3600</span>) . <span>'小时前'</span>;
<span>break</span>;
<span>case</span><span>$time</span> > <span>$tody</span>:
<span>$str</span> = <span>'今天'</span> . date(<span>'Y-m-d H:i:s'</span>, <span>$time</span>);
<span>break</span>;
<span>default</span>:
<span>$str</span> = date(<span>'Y-m-d H:i:s'</span>, <span>$time</span>);
}
<span>return</span><span>$str</span>;
}
<span>$time</span> = <span>1423110837</span>;<span>//模拟保存在数据库中的时间戳</span><span>echo</span> time_format(<span>$time</span>);</code>解读:
1、首先我们要获取当前时间即:
3、获取数据库中的时间戳和当前时间的差值。即:
4、通过switch判断数据库中的时间戳来显示对应的时间格式(时、分、秒、具体时间)
以上就介绍了将数据库中保存的时间戳转换为过去的时间格式,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号