您的位置:首页 > 数据库

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

2015-02-06 14:21 274 查看
这个功能一般用在微博、博客的文章发布时间显示上。例如:在新浪微博发布了一篇微博,如果是今天发布的它会显示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();2、我们要获取今天0时0分0秒的时间戳,用于比对数据库中的时间是今天还是昨天的。即:tody = strtotime(date(‘Y-m-d’));

3、获取数据库中的时间戳和当前时间的差值。即:diff=now - $time;

4、通过switch判断数据库中的时间戳来显示对应的时间格式(时、分、秒、具体时间)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: