我有一个 jquery 日期选择器
$(function() {
var date = new Date();
var currentMonth = date.getMonth();
var currentDate = date.getDate();
var currentYear = date.getFullYear();
$('.datepicker').datepicker({
showOn: 'focus',changeMonth: true,
minDate: new Date(currentYear, currentMonth, currentDate),
changeYear: true,
});
});
经过一些验证
$this->validate($request, [
"date" => 'required|date',
]);
以及将日期传递给数据库的一些转换
$date = $request->input('date');
$date2 = DateTime::createFromFormat('m/d/Y',$date);
$date3 = $date2->format("Y-d-m");
如果此时我 dd($date3) 和选定的日期,我会得到这样的结果
"2016-29-09"
很好,mysql 似乎以 y-d-m 格式保存。
现在当我去通过它的时候
Message::where('id', $messageId)->update([
'updated_at' => Carbon\Carbon::now(),
'subject' => 'Status: Price quote delivered.',
'quoted' => 1,
'price' => $request->input('price'),
'estimated_date' => $date3,
]);
除日期外,所有内容都会传递到数据库。日期在数据库中停留在 0000-00-00。
帮忙吗?
最佳答案
请注意,您将日期保存为 YEAR-DAY-MONTH
,DATE
的正确格式为 YEAR-MONTH-DAY
。
另请注意,$date3
的值为“2016-29-09”,由于月份值无效且范围正确,这将在您的表中插入值“0000-00-00”对于数据类型 DATE
,月份是 (1-12)。
解决方案:
您需要根据列的数据类型更改日期格式(年-月-日)。
$date3 = $date2->format("Y-m-d"); // something like 2016-09-26
您也可以按照引用: http://dev.mysql.com/doc/refman/5.7/en/datetime.html
关于php - 日期未使用 laravel 保存到 mySQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39695974/