PHP计算时间差函数 可显示“消息来自XX分钟前”

98 篇文章 6 订阅 ¥99.90 ¥299.90
该PHP函数`time2Units`用于计算并返回两个时间戳之间的时间差,以‘年前’、‘个月前’等友好的字符串形式展示。通过循环遍历不同时间单位,确定最近的时间单位进行显示。
摘要由CSDN通过智能技术生成
/**
 * 时间差计算
 *
 * @param Timestamp $time 时间差
 * @return String Time Elapsed
 * @author Shelley Shyan
 * @copyright http://phparch.cn (Professional PHP Architecture)
 */
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 = 2052345678; //已经过去的时间
$diff = time() - $past;

echo '发表于' . time2Units($diff) . '前';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值