Преобразовать в дд / ммм / гггг - PullRequest
4 голосов
/ 04 декабря 2009

Я получаю дату из MySQL в формате гггг / мм / дд 00:00:00. Я хочу преобразовать эту дату в формат дд / ммм / гггг в PHP.

Ответы [ 5 ]

12 голосов
/ 04 декабря 2009

Использовать PHP date и strtotime :

$formatted = date('d/M/Y', strtotime($date_from_mysql));

Или используйте встроенную в MySQL функцию DATE_FORMAT :

SELECT DATE_FORMAT(datetime, '%d/%b/%Y') datetime FROM table

Или, вы можете смешать немного обоих вкусов:

SELECT UNIX_TIMESTAMP(datetime) timestamp FROM table;

$formatted = date('d/M/Y', $timestamp);

Последний способ удобен, если вам нужно получить несколько разных форматов на одной странице; скажем, вы хотите напечатать дату и время отдельно, тогда вы можете просто использовать дату ('d / M / Y', $ timestamp) и дату ('H: i', $ timestamp) без каких-либо дальнейших преобразований.

5 голосов
/ 04 декабря 2009

Несмотря на то, что вы специально спрашивали о решении php, вас также может заинтересовать функция date_format () в MySQL.

SELECT date_format(dt, '%d/%m/%Y') ...
0 голосов
/ 04 декабря 2009
$d=date_create('2009-12-04 09:15:00');
echo $d->format('dd/M/yyyy');
0 голосов
/ 04 декабря 2009

На самом деле вы можете заставить mySQL конвертировать дату в метку времени Unix

SELECT UNIX_TIMESTAMP(field) as date_field
FROM table

Затем вы можете передать это прямо в PHP функцию date (), чтобы получить желаемый формат

date('d/M/Y', $row['date_field'])
0 голосов
/ 04 декабря 2009

Вы должны взглянуть на функцию date() в PHP ( документы ).

print date('d/M/Y', $row['tstamp']);

Это применимо, если поле даты имеет значение DATETIME или TIMESTAMP,Помните, чтобы обернуть поле в UNIX_TIMESTAMP() ( документы ), например, SELECT ..., UNIX_TIMESTAMP(dateField) AS tstamp FROM ....

...