首页  >  文章  >  后端开发  >  将数据库中保存的时间戳转换为过去的时间格式

将数据库中保存的时间戳转换为过去的时间格式

WBOY
WBOY原创
2016-08-08 09:29:591876浏览

这个功能一般用在微博、博客的文章发布时间显示上。例如:在新浪微博发布了一篇微博,如果是今天发布的它会显示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> 60:
            <span>$str</span> = <span>$diff</span> . <span>'秒前'</span>;
            <span>break</span>;
        <span>case</span><span>$diff</span> 3600:
            <span>$str</span> = floor(<span>$diff</span> / <span>60</span>) . <span>'分钟前'</span>;
            <span>break</span>;
        <span>case</span><span>$diff</span> 3600 * <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、首先我们要获取当前时间即:now=time();2000tody = strtotime(date(‘Y-m-d’));
3、获取数据库中的时间戳和当前时间的差值。即:diff=now - $time;
4、通过switch判断数据库中的时间戳来显示对应的时间格式(时、分、秒、具体时间)

以上就介绍了将数据库中保存的时间戳转换为过去的时间格式,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn