牛骨文教育服务平台(让学习变的简单)
博文笔记

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

创建时间:2017-06-01 投稿人: 浏览次数:5078

项目中需要显示某一天内所有数据的时间,但因为已经规定了是某一天,所以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";
这种方式给类赋值,就可以避免出错。

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。