我无法将时间戳保存到我的MySQL数据库中。在这种情况下,用户在文本字段中以dd / mm / yyyy格式写入日期,我希望将其保存为时间戳。
问题是,它总是抱怨格式不正确。
到目前为止,我已经尝试过:
$d = DateTime::createFromFormat("d/m/Y H:i:s", $request['b_date'] . " 00:00:00");
// or
$d = Carbon::parse($request['b_date']);
// or
$d = Carbon::createFromFormat("d/m/Y H:i:s", $request['b_date'] . " 00:00:00");
// so that I can
$p->b_date = $d;
但是它永远不会让我保存它。 这是日志:
[2019-05-29 15:14:02] local.ERROR: SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '1111-11-11 00:00:00' for column 'b_date' at row 1 ...
我已经尝试了几个小时。我想念什么?
“ 1111-11-11 00:00:00”如何成为无效的日期时间值?
答案 0 :(得分:0)
在迁移脚本中将数据类型声明为DateTime对我有用。
...
Schema::create(...
$table->dateTime('b_date'); // use dateTime instead of timestamp
...
在控制器中用碳设置它:
...
$p->b_date = Carbon::createFromFormat("d/m/Y H:i:s", $input['b_date'] . " 00:00:00");
...