Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 当我想用laravel在DB中插入日期时出错_Postgresql_Date_Eloquent_Laravel 5.1_Php Carbon - Fatal编程技术网

Postgresql 当我想用laravel在DB中插入日期时出错

Postgresql 当我想用laravel在DB中插入日期时出错,postgresql,date,eloquent,laravel-5.1,php-carbon,Postgresql,Date,Eloquent,Laravel 5.1,Php Carbon,我正在使用Laravel5.1和eloquent,我有一个postgre数据库,我想在其中插入一个带有日期的对象。我的开始格式日期类似于“2015年10月15日”,我需要转换为“Y-m-d” 为此,我在模型中使用了日期变量,我添加了以下行: protected $dates = ['created_at', 'updated_at', 'prj_start_date', 'prj_end_date_init']; 我使用带有服务和存储库的体系结构,因此在数据库中创建对象的存储库中,我有: $t

我正在使用Laravel5.1和eloquent,我有一个postgre数据库,我想在其中插入一个带有日期的对象。我的开始格式日期类似于“2015年10月15日”,我需要转换为“Y-m-d”

为此,我在模型中使用了日期变量,我添加了以下行:

protected $dates = ['created_at', 'updated_at', 'prj_start_date', 'prj_end_date_init'];
我使用带有服务和存储库的体系结构,因此在数据库中创建对象的存储库中,我有:

$this->model->create($data);
当我尝试插入时,出现了此错误

InvalidArgumentException in Carbon.php line 425: 
Unexpected data found.
Unexpected data found.
Data missing
in Carbon.php line 425
at Carbon::createFromFormat('Y-m-d H:i:s', '15/10/2015') in Model.php line 2959
at Model->asDateTime('15/10/2015') in Model.php line 2915
at Model->fromDateTime('15/10/2015') in Model.php line 2870
at Model->setAttribute('prj_start_date', '15/10/2015') in Model.php line 422
为什么没有工作,我错过了什么?
有人能帮帮我吗?

在Model.php第2959行的Carbon::createFromFormat('Y-m-dh:i:s','15/10/2015')中,很明显,laravel以某种方式硬编码了它的日期变量。我建议使用手动方法,通过以下方式将字符串转换为
Carbon
实例:

Carbon::createFromFormat($format, $time, $tz);
例如,假设有一个日期字段而不是时间戳:

Carbon::createFromFormat('d/m/Y', '15/10/2015');
ps。我还没有时间测试这个。尽管如此,从中学到东西还是很有趣的,对吗

ps。您可能对更改laravel的格式感兴趣,但我怀疑这会影响默认情况下是时间戳而不是日期的
处创建的
处更新的
字段


ps。好的,我确实忘了提到你必须在你的控制器中添加Carbon,只需添加
使用Carbon/Carbon

谢谢,但我想在控制器中转换我的日期(我有很多日期)。我解决了我的问题。我为我的所有日期添加了一个变量。
code:private函数setPrjStartDateValue($value){$date\u parts=explode('/',$value);$this->attributes['prj\u start\u date']=$date\u parts[2].-'.$date\u parts[0].-'.$date parts[1];}
这是解决方案之一(但不是我想到的那个)。很高兴你能解决。