Laravel 如何将日期格式YY-MM插入数据库?

Laravel 如何将日期格式YY-MM插入数据库?,laravel,Laravel,我一直在尝试从用户那里获取年和月的数据,并将它们插入数据库。 我使用的是输入类型month,因此用户只能发送年份和月份 <input type="month" name="date_from"/> <input type="month" name="date_to"/> 数据保存为0000.00.00 我的数据库中这两个输入的数据类型是 timestamp 我不知道我在这里做错了什么。请提供帮助我在文档中不认为createDateFromFormat是有效的Carbo

我一直在尝试从用户那里获取年和月的数据,并将它们插入数据库。 我使用的是输入类型month,因此用户只能发送年份和月份

<input type="month" name="date_from"/>
<input type="month" name="date_to"/>
数据保存为0000.00.00 我的数据库中这两个输入的数据类型是

timestamp

我不知道我在这里做错了什么。请提供帮助

我在文档中不认为
createDateFromFormat
是有效的Carbon方法

同样,似乎没有任何
createDateToFormat
方法

Carbon::createFromFormat()
返回一个Carbon对象,而不是字符串或等效的MySQL时间戳,因此,假设您将代码更改为:

$this->attributes['date_from'] = \Carbon\Carbon::createFromFormat('Y-m', $value)->toDateTimeString();
它应该提供你想要的结果

参考资料: @Ted Stresen Reuter

很抱歉,答复太晚,无法找到在该模型内有效的解决方案。我试过你的方法,我以前也试过,只是做了些小改动

非常感谢你试图帮助我。。我在控制器中找到了一种方法来完成这项工作,我不推荐这种方法,但这是我能找到的最好的方法,我的日程安排很紧

'date_from' => isset($date_from[$key]) ? date('Y-m-d h:i:s', strtotime($date_from[$key])) : '',
'date_to' => isset($date_to[$key]) ? date('Y-m-d h:i:s', strtotime($date_to[$key])) : '',

类型时间戳至少接受完整格式的日期。我知道如何将数据从刀片服务器传递到控制器,因此我能够添加一个日期方法,并在其中添加一个strttotime方法,以将我的YY-MM转换为YY-MM-DD,默认情况下插入的日期为01

为什么您有不应该存在的input=“month”。那应该是一条短信->我的回答回答了你的问题吗?你自己找到答案了吗?@Mubo使用input=“month”我只能直接从用户那里获得月份和年份
'date_from' => isset($date_from[$key]) ? date('Y-m-d h:i:s', strtotime($date_from[$key])) : '',
'date_to' => isset($date_to[$key]) ? date('Y-m-d h:i:s', strtotime($date_to[$key])) : '',