WordPress新发布文章显示时间为“几分钟”前

wordpress新发布文章显示显示“几分钟前”,“几小时前”,“几天前”函数,有点类似于微博新发布的消息显示的时间格式。

function time_since($older_date, $newer_date = false)
	{
	$chunks = array(
	array(60 * 60 * 24 * 365 , '年'),
	array(60 * 60 * 24 * 30 , '月'),
	array(60 * 60 * 24 * 7, '周'),
	array(60 * 60 * 24 , '天'),
	array(60 * 60 , '小时'),
	array(60 , '分钟'),
	);

	$newer_date = ($newer_date == false) ? (time()+(60*60*get_settings("gmt_offset"))) : $newer_date;
	$since = $newer_date -  abs(strtotime($older_date));

        //根据自己的需要调整时间段
	if($since < 60 * 60 * 24){
	for ($i = 0, $j = count($chunks); $i < $j; $i++)
		{
		$seconds = $chunks[$i][0];
		$name = $chunks[$i][1];

		if (($count = floor($since / $seconds)) != 0)
			{
			break;
			}
		}

	$out = ($count == 1) ? '1 '.$name : "$count {$name}";
	if ($i + 1 < $j)
		{
		$seconds2 = $chunks[$i + 1][0];
		$name2 = $chunks[$i + 1][1];
		
		if (($count2 = floor(($since - ($seconds * $count)) / $seconds2)) != 0)
			{
			$out .= ($count2 == 1) ? ', 1 '.$name2 : ", $count2 {$name2}";
			}
		}
	
	return $out." 前";
	
	}else{
	  the_time(get_option('date_format'));
	}
	}

用法将上面的函数添加到主题的functions.php中,在需要调用时间的地方替换成下面的代码

if (function_exists('time_since')) {
echo time_since($post->post_date);
} else {
the_time(get_option('date_format'));
}

如果你想显示几周前或是更久以前,可以把“if($since < 60 * 60 * 24)” 小于号后面的值设为你想要的时间段就可以啦!

“WordPress新发布文章显示时间为“几分钟”前”的4个回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注