将碳从字符串保存到MySQL

时间:2019-05-29 15:21:28

标签: php mysql laravel

我无法将时间戳保存到我的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”如何成为无效的日期时间值?

1 个答案:

答案 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");

...