30 2014年04月

PHP计算时间差函数,显示格式例如“xx分钟前/xx小时前”

发布于:09时00分 | 来源:湛蓝天空  |   编辑:湛蓝  |   日志分类:PHP  |   已聚集:人围观

前端时间做一个APP后台时用户要求用户的评论以xx分钟前这种格式显示,给用户以良好的体验,于是笔者写了次函数。本函数主要是利用PHP计算两个时间之间的差值,通过差值来转换,虽然代码很简单,但是很实用。

PHP计算时间差函数,显示格式例如“xx分钟前/xx小时前”代码片段:

<?php

/**
 * 时间差计算
 *
 * @param Timestamp $time 时间差
 * @return String Time Elapsed
 * @author jakehu (http://www.jakehu.me/)
 */
function time2Units ($time)
{
$year   = floor($time / 60 / 60 / 24 / 365);
$time  -= $year * 60 * 60 * 24 * 365;
$month  = floor($time / 60 / 60 / 24 / 30);
$time  -= $month * 60 * 60 * 24 * 30;
$week   = floor($time / 60 / 60 / 24 / 7);
$time  -= $week * 60 * 60 * 24 * 7;
$day    = floor($time / 60 / 60 / 24);
$time  -= $day * 60 * 60 * 24;
$hour   = floor($time / 60 / 60);
$time  -= $hour * 60 * 60;
$minute = floor($time / 60);
$time  -= $minute * 60;
$second = $time;
$elapse = '';
 
$unitArr = array('年前'  =>'year', '个月前'=>'month',  '周前'=>'week', '天前'=>'day',
'小时前'=>'hour', '分钟前'=>'minute', '秒前'=>'second'
);
 
foreach ( $unitArr as $cn => $u )
{
if ( $year > 0 ) {//大于一年显示年月日
$elapse = date('Y/m/d',time()-$time);
break;
}
else if ( $$u > 0 )
{
$elapse = $$u . $cn;
break;
}
}
 
return $elapse;
}
 
$past = 1390000000; //起点时间
$diff = time() - $past;//时间差
 
echo '发表于' . time2Units($diff) . '前';

?>

除非注明,均为湛蓝天空原创,转载请注明本文网址:http://skyhome.cn/php/466.html

标签:时间差函数(1)
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)