datetime - 如何处理 Illuminate/Carbon 中的数据类型 TIME
问题描述
我正在使用具有以下列(MariaDB)的数据库:
- EventDate(数据类型 DATE)
- EventStart(数据类型 TIME)
- EventEnd(数据类型 TIME)
在模型中,我将第一个字段(EventDate)分配给:
...
protected $dates = ['EventDate'];
...
然后稍后将其格式化为:
$event->EventDate->formatLocalized('%a. %d.%m.%y')
现在,我想用类似的方法设置时间格式,但是如果我将下一个字段添加到数组中:
...
protected $dates = ['EventDate', 'EventStart'];
...
我收到以下错误消息:
Uncaught InvalidArgumentException: Unexpected data found.
有人知道如何解决这个问题吗?谢谢你!
解决方案
作为数据类型 TIME 的列作为字符串类型出现在 PHP 中,我用访问器解决了我的问题:
public function getEventEndAttribute($value) {
return $this->attributes['EventEnd'] = (Carbon::createFromFormat('H:i:s', $value));
}
然后我能够在输出脚本中给出我自己的格式:
$event->EventEnd->format('H:i');
推荐阅读
- html - Bootstrap 图标正在向下移动切换器导航栏
- php - 使用foreach时如何将索引数据放入div标签并迭代回顶部codeigniter
- string - 比较两个大txt文件的最有效方法
- indexing - 站点地图 URL 重定向到另一个
- asp.net-core - 我可以安全地删除对 .pdb 文件的引用吗?
- kotlin - 块注释内引号中的结束标记
- .net-core - 发送到指定组时出现“BadRequest” - Bot Framework 4
- android - 使用 Android SDK 进行 Fido 身份验证。来自服务器的错误:无效的来源
- c++ - 在 c ++ 中正确使用 std::sort
- three.js - ThreeJS:将场景导出到 3DS