为了账号安全,请及时绑定邮箱和手机立即绑定

发现意外数据。发现意外数据。追踪数据

发现意外数据。发现意外数据。追踪数据

PHP
狐的传说 2023-08-06 15:31:36
我创建了 Excel 导入函数,它工作正常,直到我注意到日期没有正确插入,所以我尝试格式化日期,就像Y-m-d在 MySql 中正确存储一样,但 Carbon 给出了以下错误Carbon\Exceptions\InvalidFormatException发现意外数据。发现意外数据。追踪数据在Excel中我可能有d/m/Y或者Y/m/d所以我想在数据库中格式化为tored我的导入代码public function model(array $row){    return new Staff([        'employee_no'               => $row['id'],        'name'                      => $row['name'],        'address'                   => $row['address'],        'fathers_name'              => $row['father'],        'dob'                       => $this->transformDate($row['dob']),        'blood_group'               => $row['blood_group'],        'phone'                     => $row['phone'],        'password'                  => Hash::make($row['id']),    ]);}public function transformDate($value, $format = 'Y-m-d'){    try {        return \Carbon\Carbon::instance(\PhpOffice\PhpSpreadsheet\Shared\Date::excelToDateTimeObject($value));    } catch (\ErrorException $e) {        return \Carbon\Carbon::createFromFormat($format, $value);    }}我的员工模型class Staff extends Authenticatable{  protected $fillable = [    'name', 'employee_no', 'designation_id', 'fathers_name', 'dob', 'identification_mark', 'blood_group', 'phone', 'address', 'height', 'rfid_no', 'building_id', 'password',  ];  protected $casts = ['dob'];}正确的方法是什么,还是我必须采用新的format方法dob
查看完整描述

1 回答

?
杨__羊羊

TA贡献1943条经验 获得超7个赞

Carbon::createFromFormat($format, $time)应该接收给定的格式$time,而不是您想要转换成的格式。尝试将其更改为$format = 'd/m/Y',正如您所说,这是您期望从记录中获得的格式。

之后,您只需在 Carbon 对象上创建->toDateString()或即可获取数据库格式。->toDateTimeString()

查看完整回答
反对 回复 2023-08-06
  • 1 回答
  • 0 关注
  • 95 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信