如何保存表中输入的日期时间数据

时间:2018-10-03 15:04:03

标签: php laravel phpmyadmin

我正在使用 laravel框架 php 中的网站上工作,并且在phpmyadmin中有一个数据库,我有一个表单, 2个类型为datetime-local的输入,当我从输入中选择日期时间,然后发送表格时,出现此错误。

enter image description here

我要插入到数据库表中的日期时间数据是错误的,它是:

26,2018-10-11T05:00,2018-10-12T05:00。这是字母'T',我认为这是我带来的问题。 是否可以将该字母更改为空格?可以使用javascript,在Controller的功能store()将记录保存到数据库之前,可以执行一些操作来保存日期时间数据输入。

我放入了函数store()

的代码
public function store(Request $request){


  $hours = new HoursNew();

  try {

    /*HERE ARE THE NAMES FROM THE INPUTS IN MY FORM, 
    ALSO THE NAMES OF THE FIELDS OF MY TABLE IN MY DATABASE*/ 

    $hours->id = $request->id;
    $hours->time_start = $request->time_start;
    $hours->time_end = $request->time_end;
    $hours->estate_time_id = $request->estate_time_id;
    $hours->court_id = $request->court_id;
    $hours->save();


    } catch (\Illuminate\Database\QueryException $e) {

        Session::flash('error', 'Ups! We have some problems to process your operation');

        return redirect()->route('ListHours.store');
    }
        Session::flash('message', "It's OK");
        return redirect()->route('ListHours.store');
}

4 个答案:

答案 0 :(得分:0)

您需要格式化日期时间

示例

已编辑

$hours->time_start = date('Y-m-d H:i:s', strtotime($request->time_start));

答案 1 :(得分:0)

您可以使用php DateTime的格式功能将其设置为正确的格式:

http://php.net/manual/en/datetime.format.php

Laravel默认还包含Carbon:https://carbon.nesbot.com/docs/

我通常使用Y-m-d H:i:s作为格式字符串,但是两个文档都显示了其他格式选项。

答案 2 :(得分:0)

在这样调用save()函数之前尝试转换日期-

$hora_inicio = new DateTime($request->hora_inicio);

$hora_inicio = $hora_inicio->format('Y-m-d h:i:s');

$hora_fin = new DateTime($hora_fin);

$hora_fin = $hora_inicio->format('Y-m-d h:i:s');

然后将这些变量分配给您的对象。

答案 3 :(得分:0)

对于每个不符合数据库日期时间要求的“请求”字段,您都必须重新格式化然后例如这样

$date = DateTime::createFromFormat('Y-m-d\Th:i', $request->time_start);

$hours->time_start = $date->format('Y-m-d H:i:s');