EMLOG文章发布时间转变为多少年、月、天前
很多EMLOG模板都有文章的发布时间为多少天前、多少周前、多少月和多少年前的展示方式,但EMLOG的默认模板和部分模板并没有这样的展示功能,博客志现在就来分享一个EMLOG文章发布时间转变为多少年、月、天前的方法。
一、操作步骤
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 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;
}
?>
4、将第一步中的return $r.$str;修改为如下代码
return $r . $str .sydate_g(date('G', $ptime));
5、其他步骤保持不变
二、原理解析
新增时间判断函数,在不同位置通过不同代码调用以展示多少年、月、天前的效果
三、注意事项
1、本教程所使用的代码中的月和年是按30天计算的,可能造成和准确日期有所差异