Pbootcms将日期时间转换成"刚刚、几分钟、几小时前"的形式

效果如下是,发布时间可以显示: 刚刚; 1小时前; 昨天 几点几分; 前天 几点几分; 年月日 几点几分; 这样的一个个性化日期效果,具体效果可以看本文上方的标题。 1,找到ExtLabelController.php,添加代码 路径:\apps\home\controller\ExtLabelControll
效果如下是,发布时间可以显示:
 
刚刚;1小时前;昨天 几点几分;前天 几点几分;年月日 几点几分;这样的一个个性化日期效果,具体效果可以看本文上方的标题。
 
1,找到ExtLabelController.php,添加代码
 
路径:\apps\home\controller\ExtLabelController.php
作用:该文件的作用之一,是添加新的方法,扩展单个标签
修改:大约在35行,在“private function test()”的方法下面添加新的方法。
 
代码:

//转换日期
    private function transtime(){
        $pattern = '/\{transtime\s?\(([^\}]+)\)\}/';
        if (preg_match($pattern, $this->content, $matches)) {
            $this->content = preg_replace_callback(
                $pattern,
                function($matches){
                    $time = strtotime($matches[1]);
                    $otime = date("Y-m-d H:i",$time);
                    $rtime = date("m-d H:i",$time);
                    $htime = date("H:i",$time);
                    $time = time() - $time;
                    if ($time < 60){
                        $str = '刚刚';
                    }
                    elseif ($time < 60 * 60){
                        $min = floor($time/60);
                        $str = $min.'分钟前';
                    }elseif ($time < 60 * 60 * 24){
                        $h = floor($time/(60*60));
                        $str = $h.'小时前 '.$htime;
                    }elseif ($time < 60 * 60 * 24 * 3){
                        $d = floor($time/(60*60*24));
                        if($d==1)
                            $str = '昨天 '.$rtime;
                        else
                            $str = '前天 '.$rtime;
                    }else{
                        $str = $otime;
                    }
                    return $str;
                },
                $this->content);
        }
    }
 
 
然后在run()方法里面执行该方法
 
代码:
 
/* 必备启动函数 */
    public function run($content)
    {
        // 接收数据
        $this->content = $content;      
        // 执行个人自定义标签函数
        $this->test();        
    //转换日期
    $this->transtime();      
        // 返回数据
        return $this->content;
    }
  
最后在模板页面里,使用该标签
 
代码:
 
//在文章内容里添加
{transtime({content:date})}

//在文章列表里添加
{pboot:list}
 {transtime([list:date])}
{/pboot:list}

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

错误信息 未检测到您服务器环境的sqlite3数据库扩展,请检查php.ini中是否已经开启该扩展! 另外,检测到您服务器支持pdo_sqlite扩展,您也可以修改数据库配置连接驱动为pdo_sqlite试试! 解决方法 解决方法有两种,看具体情况选择: 第一种方法:把数据库配
话不多说,直接上图上代码这里以上传图片为例!其他文件自行修改 首先引入 layui 框架 link rel=stylesheet href={pboot:sitetplpath}/layui/css/layui.css?v=v2.5.4 script type=text/javascript src={pboot:sitetplpath}/layui/layui.all.js?v=v2.5.4/scri
我们在用pbootcms建站时候,经常用到的标签就是时间,我们在这里整理了详细调用方法,希望能够帮到大家。 首页/列表标签: 列表页时间:[list:date] 效果:2021-12-06 09:12:30 列表页时间:[list:date style=Y-m-d] 效果:2021-12-06 列表页时间:[list:dat
我们在用到pbootcms多条件筛选时候,对某一项做筛选,标签项是li开始,这样的话,系统默认的全部选项没有li导致样式异常,如下图: 我们的代码如下: {pboot:selectall field=ext_kj text=全部 active=active} {pboot:select field=ext_kj} {pboot:if([selec
PbootCMS调用面包屑导航,我们可以直接用:{pboot:position} 即可。默认的面包屑标签自带a链接和分隔符,只需要放到对应的div里面设置样式就可以了。 如果我们需要自定义相关面包屑参数时,可以使用下方对应的变量进行调整 separator=* 分隔符,非必填,默认
我们要实现调用网站的留言数或者文章总数,这个要怎么操作呢? 这个我们可以用到pbootcms的万能SQL标签直接调用,我们先来看下这个标签: 用于自定义任意查询语句并循环输出 使用格式: {pboot:sql sql=语句} [sql:字段名称] {/pboot:sql} 实现调用网站的留