4 回答

TA贡献1111条经验 获得超0个赞
在Laravel 7之前,日期将被序列化为如下格式:
2019-12-02 20:01:00
但是,在 Eloquent 模型上使用toArray或toJson方法时, Laravel 7使用新的日期序列化格式,采用ISO-8601日期格式。此ISO-8601日期始终以UTC表示,如下所示:
2019-12-02T20:01:00.283041Z
如果您想继续使用以前的行为,您可以重写模型上的serializeDate()方法,并将其添加到您的模型中:
use DateTimeInterface;
protected function serializeDate(DateTimeInterface $date)
{
return $date->format('Y-m-d H:i:s');
}

TA贡献1884条经验 获得超4个赞
首先将列定义为模型上的 $dates 属性:
$dates=['date']
然后通过访问器指定您的日期格式:
public function getDateAttribute($value){
return $val->format('d/m/Y');
}

TA贡献1871条经验 获得超8个赞
它正在删除一天并尝试在前一天晚上 11 点进行格式化
这显然是时区转换(您可能处于 GMT+1),而这是向 GMT+0 (UTC) 的转换。
您不应该修剪时间来强制“00:00:00”,因为这仅在 1 个时区有效(没有全球午夜时刻,每天每个时区都有不同的午夜时刻),而您的应用程序现在或稍后可以处理多个时区。您应该将时区(例如“欧洲/伦敦”)保存在其他数据库列中,这样您就可以保留完整的信息,并且在检索日期时,您可以动态计算该日期(之前)的午夜 -根据用户时区的时间。

TA贡献1818条经验 获得超8个赞
public function getDateAttribute($value){
// return 2020-08-17
$date = date('Y-m-d',strtotime($value));
return $date;
}
确保配置文件。您会发现有一个当地时间函数,可以将其值从 UTC 更改为您所在国家/地区的当地时间
配置/应用程序.php
'timezone' => 'Asia/Riyadh',
- 4 回答
- 0 关注
- 195 浏览
添加回答
举报