关于Emlog博客文章时间显示方式几种表达方式

2023-05-10 20:30:59 浏览数 (1)

不久前写过一篇名为《Emlog时间格式转化,约几天、几月、几年的方式显示》的一篇教程,不过此教程有很多缺陷,今天给大家分享一篇相对比较完善一点的教程,但是也有点小缺点,只考虑30天的情况,其他情况不考虑在内,下面虫子就说说具体操作方法。

第一步:打开模板文件module.php,在最后加入如下代码

代码语言:javascript复制
<?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 
        }
    };
}
?>

第二步就是调用的了,模板的echo_log.php(详情页)文件中的调用方式:

代码语言:javascript复制
<?php echo sydate(gmdate('Y-m-d', $date));?>

模板的log_list.php.php(列表页)文件中的调用方式:

代码语言:javascript复制
<?php echo sydate(gmdate('Y-m-d', $value['date']));?>

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

代码语言:javascript复制
<?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;
}
?>

然后把第一步中的

代码语言:javascript复制
return $r . $str

改为

代码语言:javascript复制
return $r . $str .sydate_g(date('G', $ptime));

0 人点赞