PHP格式化显示时间(x秒前,x天前等格式)


define('APP_LOCAL_TIMESTAMP' , time());

function format_time($time)
{
	if (empty($time)) {
		return $time;
	}

	if(!is_numeric($time)){
		if (PHP_VERSION < 5) {
			$matchs = array();
			preg_match_all('/(\S+)/', $time, $matchs);
			if ($matchs[0]) {
				$Mtom=array('Jan' => '01',
					'Feb' => '02',
					'Mar' => '03',
					'Apr' => '04',
					'May' => '05',
					'Jun' => '06',
					'Jul' => '07',
					'Aug' => '08',
					'Sep' => '09',
					'Oct' => '10',
					'Nov' => '11',
					'Dec' => '12');
				$time = $matchs[0][5].$Mtom[$matchs[0][1]].$matchs[0][2].' '.$matchs[0][3];
			}
		}
		$t = strtotime($time);
	}else{
		$t = $time;
	}

	$differ = APP_LOCAL_TIMESTAMP - $t;

	$year = date('Y', APP_LOCAL_TIMESTAMP);

	if (($year % 4) == 0 && ($year % 100) > 0) {
		//闰年
		$days = 366;
	} elseif (($year % 100) == 0 && ($year % 400) == 0) {
		//闰年
		$days = 366;
	} else {
		$days = 365;
	}

	if ($differ <= 60) {
		//小于1分钟
		if ($differ <= 0) {
			$differ = 1;
		}
		$format_time = L('%d秒前', $differ);
	} elseif ($differ > 60 && $differ <= 60 * 60) {
		//大于1分钟小于1小时
		$min = floor($differ / 60);
		$format_time = L('%d分钟前', $min);
	} elseif ($differ > 60 * 60 && $differ <= 60 * 60 * 24) {
		if (date('Y-m-d', APP_LOCAL_TIMESTAMP) == date('Y-m-d', $t)) {
			//大于1小时小于当天
			$format_time = L('今天 %s', date('H:i', $t));
		} else {
			//大于1小时小于24小时
			$format_time = L('%s月%s日 %s', date('n', $t), date('j', $t), date('H:i', $t));
		}
	} elseif ($differ > 60 * 60 * 24 && $differ <= 60 * 60 * 24 * $days) {
		if (date('Y', APP_LOCAL_TIMESTAMP) == date('Y', $t)) {
			//大于当天小于当年
			$format_time = L('%s月%s日 %s', date('n', $t), date('j', $t), date('H:i', $t));
		} else {
			//大于当天不是当年
			$format_time = L('%s年%s月%s日 %s', date('Y', $t), date('n', $t), date('j', $t), date('H:i', $t));
		}
	} else {
		//大于今年
		$format_time = L('%s年%s月%s日 %s', date('Y', $t), date('n', $t), date('j', $t), date('H:i', $t));
	}
	return $format_time;
}

/**
 * 格式化显示时间
 *
 *
 */
function foramt_show_time($time) {
	if(empty($time)){
		return $time;
	}
	if (date('Y', APP_LOCAL_TIMESTAMP) == date('Y', $time)) {
		$format_time = sprintf('%s月%s日 %s',date('n',$time),date('j',$time),date('H:i',$time));
	} else {
		$week=array(0=> L('周日'),
			1=> L('周一'),
			2=> L('周二'),
			3=>L('周三'),
			4=> L('周四'),
			5=> L('周五'),
			6=> L('周六'));
		$format_time = L('%s年%s月%s日 %s %s',date('Y',$time),date('n',$time),date('j',$time),$week[date('w',$time)],date('H:i',$time));
	}

	return $format_time;

}
function L(){
	$p = func_get_args();
	return call_user_func_array('sprintf',$p);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值