【发布时间】:2017-08-25 01:56:14
【问题描述】:
我继承了一个 Laravel 5 应用程序,该应用程序使用了以前属于 Rails 应用程序的数据库。结果,在日期列(created_at、updated_at 等)中,日期格式不一致,考虑到 Laravel 的 Carbon 集成,我正在尝试确定如何解决此问题。
Rails 应用程序存储日期如下:2017-01-17 23:02:51+00
Laravel 应用包含微秒,因此日期如下所示:2017-01-17 23:02:51.451741+00
问题是 Laravel 通过 Carbon 运行它所有的日期函数,它根据全局 $dateFormat 解析它们,导致 Rails 生成的日期抛出以下错误:
Unexpected data found. Data missing
我的第一个想法是尝试检测模型级别是否存在微秒,如果没有,请将 .000000 添加到日期字符串中,这样 Carbon 就可以正常运行并且数据保持完整。
不幸的是,看起来$this->created_at 的日期首先要通过 Carbon,所以这似乎是一个死胡同。另一个问题是我不确定是否还有其他可能潜伏的日期格式。
我想避免直接编辑任何数据(至少在我更熟悉代码库之前),但我不知道用 Carbon 处理多种格式的最佳方法。
非常欢迎任何建议!
【问题讨论】:
标签: php laravel date php-carbon