首页 > 解决方案 > 如何处理 Illuminate/Carbon 中的数据类型 TIME

问题描述

我正在使用具有以下列(MariaDB)的数据库:

在模型中,我将第一个字段(EventDate)分配给:

...
protected $dates = ['EventDate'];
...

然后稍后将其格式化为:

$event->EventDate->formatLocalized('%a. %d.%m.%y')

现在,我想用类似的方法设置时间格式,但是如果我将下一个字段添加到数组中:

...
protected $dates = ['EventDate', 'EventStart'];
...

我收到以下错误消息:

Uncaught InvalidArgumentException: Unexpected data found.

有人知道如何解决这个问题吗?谢谢你!

标签: datetimetimeeloquent

解决方案


作为数据类型 TIME 的列作为字符串类型出现在 PHP 中,我用访问器解决了我的问题:

public function getEventEndAttribute($value) {
    return $this->attributes['EventEnd'] = (Carbon::createFromFormat('H:i:s', $value));
}

然后我能够在输出脚本中给出我自己的格式:

$event->EventEnd->format('H:i');

推荐阅读