Как я могу сохранить данные даты и времени из входных данных в таблице - PullRequest
0 голосов
/ 03 октября 2018

Я работаю над сайтом в php с laravel framework , и у меня есть база данных в phpmyadmin , у меня есть форма и 2 входавведите datetime-local, когда я выбираю datetime из входных данных и затем отправляю форму, я получаю эту ошибку.

enter image description here

Данные datetime, которые яЯ хотел бы вставить в мою таблицу моей базы данных в этой ошибке, это:

26, 2018-10-11T05: 00, 2018-10-12T05: 00. Это письмо 'T' Я думаю, это были проблемы со мной. Возможно ли заменить эту букву пробелом? Возможно, с помощью javascript, o перед тем, как функция 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 голосов
/ 03 октября 2018

Для каждого из полей запроса, которые не соответствуют требованиям даты и времени базы данных, вам придется переформатировать, например, вот так:

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

$hours->time_start = $date->format('Y-m-d H:i:s');
0 голосов
/ 03 октября 2018

Вы можете использовать функцию форматирования php DateTime для перевода в правильный формат:

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

В Laravel по умолчанию также есть Carbon: https://carbon.nesbot.com/docs/

Я обычно использую Ymd H: i: s для моей строки формата, но оба документа показывают дополнительные параметры форматирования.

0 голосов
/ 03 октября 2018

Попробуйте преобразовать дату перед вызовом функции 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');

и затем назначьте эти переменные вашему объекту.

0 голосов
/ 03 октября 2018

вам нужно отформатировать дату-время

пример

отредактировано

$hours->time_start = date('Y-m-d H:i:s', strtotime($request->time_start));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...