2014-01-03 4 views
0

Я использую MySQL и php. Когда я получаю дату из MySQL, она находится в формате yyyy-MM-dd. Как только я получу эту строку, как ее преобразовать в формат примера Jan 2 2013 в php?PHP как преобразовать дату из mysql?

Я попытался

date("M j Y", mysql_result($recordset, $i, 'date_started')); 

использования http://www.php.net/manual/en/function.date.php в качестве ссылки, но я получаю некоторую странную дату в качестве вывода.

+1

Какой же выход вы получите? –

+0

вы можете использовать функцию mysql http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format –

ответ

2

РНР date() метод требует метку времени, так преобразовать строку даты MySQL в метку времени первой помощи strtotime():

date("M j Y", strtotime(mysql_result($recordset, $i, 'date_started'))); 

Или еще лучше, форматировать дату в вашем MySQL Query непосредственно с помощью DATE_FORMAT. Вы даже не нуждаетесь в PHP для этого.

+0

Не слышали ли вы о DateTime? – Rottingham

+0

@ Rottingham уверен, но strtotime() в этом конкретном случае проще. тем более, что вы можете сохранить его встроенным, и не нужно разрывать код, если вы этого не хотите. – jszobody

+0

Правда, я все еще склонен полагаться на DateTime, потому что как только у меня есть объект, я могу сделать гораздо больше с ним «красивым способом», например $ date-> sub (новый DateInterval ('P1D')); – Rottingham

2

Использование обертки DateTime дает вам функциональность, которая стоит иметь. Чтобы преобразовать из формата mysql, просто следуйте этому шаблону.

$mysqlDate = '2014-01-01'; 
$myDate = new DateTime($mysqlDate); 

echo $myDate->format('M j Y'); 
1

вы могли бы использовать date_format в MySQL, как этот

DATE_FORMAT(NOW(),'%b %d %y') //%b is the short name of a month

Смежные вопросы