emlog时间格式转化,约几天、几月、几年的方式显示
[ 2015/06/28, Emlog , 3028阅, 0评 ]

很多博客的发布时间都是显示约几天前、约几周前、约几月前、约几年前,太流行了。本次分享的代码月和年是按30天计算的,没有考虑其他,可能造成和准确日期有所差异。

1.打开模板文件module.php,在最后加入如下代码

<?php
function sydate($ptime){
	//$ptime = strtotime($ptime);
	$etime = time() - $ptime;
	if($etime < 1){return '刚刚';}
	$interval = array(
		12 * 30 * 24 * 60 * 60 => '年前 ('.date('Y-m-d', $ptime).')',
		30 * 24 * 60 * 60      => '个月前 ('.date('Y-m-d', $ptime).')',
		7 * 24 * 60 * 60       => '周前 ('.date('Y-m-d', $ptime).')',
		24 * 60 * 60           => '天前',
		60 * 60                => '小时前',
		60                     => '分钟前',
		1                      => '秒前',
	);
	foreach($interval as $secs => $str){
		$d = $etime / $secs;
		if ($d >= 1){
			$r = round($d);
			return $r.$str;
		}
	};
}
?>

2.调用方法

echo_log.php文件中的调用方式:

<?php echo sydate($date);?>

log_list.php.php文件中的调用方式:

<?php echo sydate($value['date']);?>

3.如需加入时间段的话,首先在module.php中写入代码

<?php 
function sydate_g($t){
	if($t<=3){
		$ts = '拂晓';
	}elseif($t<=6){
		$ts = '黎明';
	}elseif($t<=9){
		$ts = '清晨';
	}elseif($t<=12){
		$ts = '早上';
	}elseif($t<=15){
		$ts = '中午';
	}elseif($t<=18){
		$ts = '下午';
	}elseif($t<=21){
		$ts = '傍晚';
	}elseif($t<=00){
		$ts = '深夜/午夜';
	}
	return $ts;
}
?>

然后把第一步中的

return $r.$str;

改为

return $r . $str .sydate_g(date('G', $ptime));

原文(http://www.shuyong.net/?post=798)

有朋自远方来...评论一下呗O(∩_∩)O