Laravel 文档 Eloquent: 修改器一节中 $dateFormat 参数可接受值说明
laravel文档Eloquent: 修改器一节 中指出时间格式可以修改
时间格式
默认情况下,时间戳将会以 'Y-m-d H:i:s' 格式化。如果你想要自定义自己的时间戳格式,可在模型中设置 $dateFormat 属性。该属性定义了时间属性应如何被保存到数据库,以及模型应被序列化成一个数组或 JSON 格式:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Flight extends Model
{
/**
* 模型的数据字段的保存格式。
*
* @var string
*/
protected $dateFormat = 'U';
}
但并未指出$dateFormat 可以接受哪些值,和demo中的U的含义。
这里科普一下让小伙伴少走弯路
这个$dateFormat可以接受的值和php中date()函数第一个参数可以接受的值一样。
U的意思就是我们平常说的时间戳(10位到秒)
php在线手册地址:http://php.net/manual/zh/function.date.php
本帖已被设为精华帖!
本帖由系统于 1年前 自动加精
高认可度评论:
@AndyWong
另外一个推荐做法是,在你的 ModelBase 里复写 Model 类里面的同名方法
其实没什么的,因为 laravel 通过artisan自动维护 创建时间和更新时间,前面有如何 取消 自动维护时间, 这个只是把维护时间的类型 从 timespace 换到了 unix 时间戳 即 U
存储的是 timestamp
读取结果是 : 2020-04-05T19:28:48.000000Z
怎样读取成为:2020-04-05 19:28:48 这个格式?
@AndyWong
解决了。设置一个类转化一下
@AndyWong 用getter的方法每个属性都要写一次…… 有没有更简单的方法直接更改所有timestamps的显示格式?
@AndyWong
另外一个推荐做法是,在你的 ModelBase 里复写 Model 类里面的同名方法