tp5时间戳功能的自定义实现。

来源:互联网 发布:从其他excel导入数据 编辑:程序博客网 时间:2024/05/19 12:13

项目中需要显示某一天内所有数据的时间,但因为已经规定了是某一天,所以TP5框架自带的时间戳格式

date('Y-m-d H:i:s')

这种时间戳格式就显得鸡肋了,我们要实现

date('H:i:s')

这样就可以了。

那么这个格式在哪里修改呢?我们先看一下配置文件,config.php
我们发现默认的配置文件中没有这个选项,那我们看一下model类的源码

Model.php中有一个属性我很在意

    // 时间字段取出后的默认时间格式    protected $dateFormat;    // 字段类型或者格式转换    protected $type = [];

这个应该就是我们要找的属性,在类中查找dateFormat字段,找到代码

if (is_null($this->dateFormat)) {   // 设置时间戳格式   $this->dateFormat = $this->getQuery()->getConfig('datetime_format');}

从这里可以看到,当时间戳为null时,时间戳的格式是从配置文件中的datetime_format属性来获取的,因为只有这个接口需要实现'H:i:s'时间格式,所以我们在对应的model类中定义

    protected $dateFormat = 'H:i:s';

查看输出

commit:"无"create_time:"11:20:21"id:"195"

成功了。

但是,需要注意的是如果在类中直接定义会造成类所有 格式都是'H:i:s',所以更好的办法是在方法中通过
$this->dateFormat = 'H:i:s';
这种方式给类赋值,就可以避免出错。