2013-03-05 3 views
2

Я огляделся, но все равно получаю сообщение об ошибке.конвертировать из строки в дату в php

У меня есть следующая строка:

$date = "25 Jan 2013 07:30 PM"; 

, но мне нужно, чтобы добавить его в SQL как отдельные даты и времени полей. Любые предложения, как я могу преобразовать его в дату, а не в строку? Когда я пытаюсь использовать что-то вроде

strtotime($date); 

Я в конечном итоге с:

1359142200 
+0

Почему у вас это написано как '$ date =" 25 Jan 2013 07:30 PM ",' в первую очередь? –

+1

Что вы в итоге получаете - это временная метка. Посмотрите на функцию 'date()' PHP для форматирования. – BenM

+0

@aguyfromhere он пришел из отчета csv –

ответ

4

Вариант 1:

$date = date("Y-m-d", strtotime("25 Jan 2013 07:30 PM")); 
$time = date("H:i:s", strtotime("25 Jan 2013 07:30 PM")); 

Вариант 2

$datetime = DateTime::createFromFormat("j M Y H:i A", "25 Jan 2013 07:30 PM"); 
$date = $datetime->format("Y-m-d"); 
$time = $datetime->format("H:i:s"); 
+0

спасибо, отлично работал –

1

Для достижения наилучших результатов, конвертировать $date в DateTime объекта с DateTime::createFromFormat, а затем использовать DateTime::format для получения значений для отдельных полей ,

Пример:

$dt = DateTime::createFromFormat("d M Y H:i A", "25 Jan 2013 07:30 PM"); 

$date = $dt->format("Y-m-d"); 
$time = $dt->format("H:i:s"); 
-1

Если вы хотите, как метку времени, то strtotime() функция PHP для использования: - http://php.net/manual/en/function.strtotime.php

Если вы хотите в формате даты MySQL строка strtotime() в сочетании с date() будет отвечать следующим образом: -

$db_date = date("Y-m-d H:i:s", strtotime($date)); 
Смежные вопросы