gpt4 book ai didi

php - Laravel 自动添加时间到日期

转载 作者:行者123 更新时间:2023-12-04 09:05:44 29 4
gpt4 key购买 nike

我的 Laravel 应用程序似乎有问题,我一生都无法弄清楚发生了什么。
我的 MySQL 数据库中有一个简单的日期字段,它的数据类型只是 date ,本例中的值为 2020-08-13 ,但出于某种原因,当我尝试访问日期时,它会在末尾添加一个时间戳,减去 1 天并引发 Carbon 尾随数据错误。
绝对是这个日期,因为当我软删除它时,错误就会消失。
例如,此日期的错误是Carbon\\Carbon::rawCreateFromFormat('Y-m-d', '2020-08-12T23:0...', NULL)如您所见,它正在删除一天并尝试在前一天晚上 11 点进行格式化?
在 Laravel 添加 0000-00-00 之前,我也遇到过类似的问题。到日期为止,所以我不得不在我的访问器中删除它,但是现在它在晚上 11 点抛出,我的字符串替换不再起作用。我显然可以更改字符串替换器以查找 11pm,但我不想每次格式更改时都必须修复此问题。
我的访问代码如下

    public function getDateAttribute($value){
//String replace and remove the time from the value if it exists
$value = str_replace(' 00:00:00', '', $value);
return Carbon::CreateFromFormat('Y-m-d', $value)->format('d/m/Y');
}
有没有人以前有过这样的错误,或者知道发生了什么?

最佳答案

之前 Laravel 7 , 日期将被序列化为如下格式:

2019-12-02 20:01:00
但是, Laravel 7 使用新日期 序列化使用 时的格式toArray toJson Eloquent 模型上的方法,使用 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');
}

关于php - Laravel 自动添加时间到日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63452416/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com