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

来源:互联网 发布:js window.android 编辑:程序博客网 时间:2024/05/16 01:35

这个功能一般用在微博、博客的文章发布时间显示上。例如:在新浪微博发布了一篇微博,如果是今天发布的它会显示XX秒、XX小时前发布而不是显示具体的时间。如果转发一篇以前发布的微博则原微博显示其发布的时间。
那么如何实现呢?代码如下:

/**格式化时间函数 * @param $time 需要格式化的时间戳 */function time_format ($time) {    $now = time();    $tody = strtotime(date('Y-m-d'));    $diff = $now - $time;    $str = '';    switch ($time) {        case $diff < 60:            $str = $diff . '秒前';            break;        case $diff < 3600:            $str = floor($diff / 60) . '分钟前';            break;        case $diff < (3600 * 8):            $str = floor($diff / 3600) . '小时前';            break;        case $time > $tody:            $str = '今天' . date('Y-m-d H:i:s', $time);            break;        default:            $str = date('Y-m-d H:i:s', $time);    }    return $str;}$time = 1423110837;//模拟保存在数据库中的时间戳echo time_format($time);

解读:
1、首先我们要获取当前时间即:now=time();2000tody = strtotime(date(‘Y-m-d’));
3、获取数据库中的时间戳和当前时间的差值。即:diff=now - $time;
4、通过switch判断数据库中的时间戳来显示对应的时间格式(时、分、秒、具体时间)

0 0
原创粉丝点击