PHP把时间处理成多少分钟前

微博上发布消息的时候,一定会看到一种情况:某某人多少分钟前发布了一条消息:

这种即时处理的人性化方式下面来介绍在PHP下是如何实现这一功能的。

在看源码前,我们先要了解,在php中系统的时间函数:time() 该函数能调出当前的时间(该时间为unix时间戳,关于Unix时间戳,是从1970年0时0分0秒开始到现在的秒数);下面还需要了解一个能处理该时间戳的函数:date() 。

为了更好解释以上函数的用法,我举个例子:

$time=time();
$time=date("y-m-d H:i:s",$time);  
echo $time;

第一行把当前时间戳给变量$time

第二行用函数date()对变量$time进行处理,并把值输出到变量$time上

第三行输出变量$time

了解了以上用法,下面来看把时间处理成多少分钟前的一个类函数:

function time_ago($cur_time){ 
$agoTime = time() - $cur_time; 
    if ( $agoTime <= 60 ) {
        return $agoTime.'秒前';
    }elseif( $agoTime <= 3600 && $agoTime > 60 ){
        return intval($agoTime/60) .'分钟前';
    }elseif ( date('d',$cur_time) == date('d',time()) && $agoTime > 3600){
	return '今天 '.date('H:i',$cur_time);
    }elseif( date('d',$cur_time+86400) == date('d',time()) && $agoTime < 172800){
	return '昨天 '.date('H:i',$cur_time);
    }else{
        return date('Y年m月d日 H:i',$cur_time);
    }
}

类函数的用法:

$weibotime='1326168340';
echo time_ago($weibotime);

变量$weibotime赋值uinx时间戳。

该类可以用在任意需要输出时间的地方,2个函数都为php自带函数。可以判断多少秒内,多少分钟内,对超过1小时的给出 "今天 10:39"这种类型的时间,对超过1天的给出 "昨天 3:10"类型的时间;对于超过这些时间的都以输出 "2012年1月11日 5:30" 这种类型的时间。

此条目是由 malu8 发表在 未分类 分类目录的。将固定链接加入收藏夹。

评论已关闭。