laravel-admin显示日期的时候,多了.000000Z

**

laravel时间格式序列化

**
在使用 laravel-admin扩展显示时间格式的时候,时间后面出现了.000000Z。
在这里插入图片描述

查询数据库中的时间是正确的,怎么也搞不懂这个.000000Z是怎么出现的。
查看laravel-admin的文档,并未有对此现象的说明。那么很有可能是laravel框架本身的问题,于是查看laravel的文档说明,并未找到有此方面的说明,不过找到一个自定义日期序列化格式的方法,按照文档操作,重写serializeDate方法,问题成功解决。

protected function serializeDate(\DateTimeInterface $date){
        return $date->format('Y-m-d H:i:s');
    }

最终找到原因:
我使用的laravel版本是8.0,从laravel6升级laravel7 开始,使用了新的日期序列化格式。这一点在laravel7的文档中有说明,有兴趣的小伙伴可以自行去查看一下

日期序列化 受影响可能性:高

在 Eloquent 模型上使用 toArray 或 toJson 方法时,Laravel 7
将使用新的日期序列化格式。为了格式化日期以进行序列化,Laravel 将会使用 Carbon 的 toJSON 方法,该方法将生成与
ISO-8601 兼容的日期,包括时区信息及小数秒。此外,该更改提供了更好的支持,并与客户端日期解析库集成。

此前,日期将序列化为以下格式:2020-03-04 16:11:00
。使用新格式进行序列化的日期将显示为:2020-03-04T20:01:00.283041Z

如果你希望继续保持之前所用的格式,你可以重写模型的 serializeDate 方法:

$date  * @return string  */ protected function
serializeDate(DateTimeInterface $date) {
    return $date->format($this->dateFormat ?: 'Y-m-d H:i:s'); } ```

技巧:该更改仅影响序列化为数组和 JSON 的模型和模型集合,对数据库中的日期没有影响。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值