Переконвертировать дату в MySql timestamp

395
20 февраля 2017, 19:48

Дата приходит с формы таким форматом.

[Date] => 16/02/2017 [Time] => 14:25

Приходит Post Запросом. Эту дату нужно записать в БД Mysql. Формат поля timestamp

Вот такой:

2017-02-22 02:00:00

Как привести к такому типу с помощью PHP

Answer 1
$date = ['date' => '16/02/2017', 'time' => '14:25'];
$date = new DateTime(str_replace('/', '.', $date['date'].' '.$date['time']));
echo $date->format('Y-m-d H:i:s');

Класс Datetime в доках

А чтобы не писать str_replace, то можно воспользоваться методом createFromFormat, который разбирает строку, содержащую время, в соответствии с заданным форматом

Answer 2

Можно с использованием регулярки:

preg_replace('/(\d{2})\/(\d{2})\/(\d{4})/', '$3-$2-$1', $post['Date'])." ".$post['Time'].":00";
Answer 3

Давно есть нативный класс Datetime, которых может проверить формат и форматировать дату как угодно.

$Date = \Datetime::createFromFormat('d/m/Y H:i', $request['Date'] . ' ' . $request['Time']);
if (! $Date) {
    // дата в неверном формате
}
echo $Date->format('Y-m-d H:i:s');
READ ALSO
Данные MIME в формат

Данные MIME в формат

Существует ли встроенная функция в php или что либо подобное, для того, чтобы зная MIME файла - вывести форматК примеру:

250
Загрузить содержимое php через jquery

Загрузить содержимое php через jquery

Есть следующий скрипт:

364
Почему результат AJAX-запроса пустой?

Почему результат AJAX-запроса пустой?

Не могу понять почему получаю пустое значение data в следующем коде:

289