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天计算的,可能造成和准确日期有所差异