php时间三个月前,php处理时间格式:几秒前,几分钟前,几小时前,几天前,几个月前,几年后 ,或者 几秒后,几分钟后,几小时后,几天后,几个月后,几年后...

本文介绍了如何使用PHP计算并格式化时间差,以显示如‘几秒前’、‘几分钟前’等即时时间信息,常见于社交网络应用中。通过将当前时间与事件发生时间相减,再进行时间单位的换算,可以实现精确的时间显示。提供的PHP函数示例展示了这一过程,包括时间差的正负判断和时间单位的匹配。
摘要由CSDN通过智能技术生成

在网页应用中,经常会遇到时间显示为:几秒前,几分钟前,几小时前,几天前,几个月前,几年后 ,或者 几秒后,几分钟后,几小时后,几天后,几个月后,几年后。像这样的应用,除了在我们自己的博客会遇到外,更多的类似于QQ空间社交类的站点应用就更广了。。

在QQ空间中,经常看到某某好友几分钟或几秒钟发表了某篇说说,或上传了某个图片之类的,还有在新流微博中,对于时间的计算也非常的精细,类如某个明星几秒钟之前发表了一篇微博,总之,时间的计算在SNS的社交网络中显得非常重要,毕竟SNS社交网络重视的是新闻的即时性,快速性。

那么使用PHP怎样来计算时间呢,其实原理也是很简单的,通俗的来讲就是将“现在的时间”减去“发表新闻的时间”就等于“距离的时间”,这个说得不是哪么准确,但为了能够理解吧,也就是时间的加减法,这里写了一个PHP的时间计算函数,看如下函数代码:

header("Content-type:text/html;charset=utf-8");

function format_date($time){

$t=time()-strtotime($time);

if($t>0){$ba = '前';}else{$ba = '后';}

/*

echo date("Y-m-d H:i:s",time());

echo '


';

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

echo '


';

echo date("Y-m-d H:i:s",$t);

echo '


';

echo $t;

echo '


';

*/

$f=array(

'31536000'=>'年',

'2592000'=>'个月',

'604800'=>'星期',

'86400'=>'天',

'3600'=>'小时',

'60'=>'分钟',

'1'=>'秒'

);

foreach ($f as $k=>$v) {

if (0 !=$c=floor(abs($t)/(int)$k)) {

return $c.$v.$ba;

}

}

}

echo format_date(date("Y-m-d H:i:s",time()-50));

?>

程序的算法:

1. 把时间格式文本,转化为秒数 减去 当前时间,得到时间差 $t(秒数);

2. 判断时间差 是正数 还是 负数,如果是正数就是xxx前(1秒前),如果是负数 就是xxx后(1秒后);

3.是时间差$t 的绝对值 去分别除以 年,月,星期,天,时,分,秒 的秒数,去正数部分。直到不等于0 结束。就得到了 对应的 时间 和 时间单位。

4.在 拼接之前得到的(前/后)返回值 就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值