我正在通过失眠将数据发布到lumen api,并且希望将数据发送到数据库,但是我遇到了无效的datetime错误
我尝试将datetime转换为mysql格式,但是我失败了,都使用Carbon,Casting和strtotime php函数,如下所示 1. strtotime($ value); 2. Carbon :: createFromFormat('Y-m-d H:i:s',$ value); 3.像这样“ parking_end_time” =>'datetime:Y-m-d H:i:s'
trackingPxl.src = 'http://example.com/adclick.php';
我希望日期时间返回为“ 0000-00-00 21:27:00”,但我看到的是“ -0001-11-30 21:27:00.000000”
答案 0 :(得分:0)
您只是在下面的代码中返回碳实例:
$parkingStartTime = Carbon::createFromFormat('Y-m-d H:i:s', $request->parking_start_time);
如果要格式化toDateTimeString()
函数,请执行以下操作:
$parkingStartTime = Carbon::createFromFormat('Y-m-d H:i:s', $request->parking_start_time)->toDateTimeString();
此外,在您的mutator setParkingStartTimeAttribute
函数中,您只是在调用createFromFormat
,而缺少第一个参数格式。
您需要更新:
public function setParkingStartTimeAttribute($value)
{
return Carbon::createFromFormat('Y-m-d H:i:s', $value);
}
由于您的mutator已经在进行格式化工作,因此您可以消除在控制器中再次进行格式化的过程。
答案 1 :(得分:0)
实际上我意识到了错误所在,该错误不在代码中,这是关于mysql不允许在数据库中输入零日期,而laravel和lumen强制执行此规则,这就是为什么我得到该错误的原因,但是一旦我将日期从零更改,它就可以正常工作。
一些参考文献在这些网址上
https://www.percona.com/blog/2016/10/18/upgrading-to-mysql-5-7-beware-of-the-new-strict-mode/
Error in mysql when setting default value for DATE or DATETIME