Как правильно преобразовать строку «06.03.2009 15:40:19» в тип даты / времени Laravel / Eloquent? - PullRequest
0 голосов
/ 15 марта 2019

У меня есть строка «06.03.2009 15:40:19», которую я хочу преобразовать в тип даты / времени Laravel / Eloquent.

Есть ли способ сделать это без извлечения всех небольших фрагментов строки и повторной сборки в нужный формат?

Ответы [ 3 ]

4 голосов
/ 15 марта 2019

Вы можете использовать Carbon, который уже является частью любой установки Laravel.

http://carbon.nesbot.com/docs/#api-getters

Если у вас есть строка даты и времени, и вы хотите использовать ее с экземпляром Carbon, вы можете сделать:

$date = \Carbon\Carbon::createFromFormat('j/n/Y g:i:s A', '3/6/2019 3:40:19 PM');

Тогда вы можете сделать что-то вроде:

$date->format('Y-m-d')
$date->format('H:i:s')
3 голосов
/ 15 марта 2019

Однолинейное решение:

date('Y-m-d H:i:s', strtotime('3/6/2019 3:40:19 PM')));

Если вы хотите использовать Laravel's Carbon, вы можете взглянуть на api docs : Я нашел пример, похожий на вашу ситуацию, который также анализирует 'pm'

$date = Carbon::createFromIsoFormat('!YYYY-MMMM-D h:mm:ss a', '2019-January-3 6:33:24 pm', 'UTC');
echo $date->isoFormat('M/D/YY HH:mm'); // 1/3/19 18:33
1 голос
/ 15 марта 2019

Используйте функцию PHP strtotime().
strToTime($string)

А если вы хотите изменить формат, вы можете использовать функцию date().
date('Y-m-d H:i:s', strtotime($string))

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...