Изменить дату для правильного отображения - PullRequest
0 голосов
/ 13 апреля 2011

Здесь много постов о дате, но я не вижу ни одной, которая бы мне помогала.

Мое поле MySQL имеет формат ггггммдд (пример: 20110423).

Мне нужно правильно отобразить его на странице, например: 04/23/2011

Как мне это сделать? Я перетаскиваю данные на страницу как 20110423, но не знаю, как переформатировать их при отображении Любая помощь с благодарностью!

Ник

Ответы [ 3 ]

3 голосов
/ 13 апреля 2011
echo date('r',strtotime('20110423'));

.. так в вашем случае

echo date('m/d/Y',strtotime('20110423'));
2 голосов
/ 13 апреля 2011
$dt = \DateTime::createFromFormat('Ymd', '20110423');
echo $dt->format('m/d/Y');

Причина, по которой мне это нравится больше, чем strtotime(), заключается в том, что it может быть требователен к заданному формату даты, и вы не можете сказать, как он анализирует строку.* Например, учитывая дату 12/10/2011, она будет всегда анализировать это как "10 декабря 2011".Измените косую черту на дефисы 12-10-2011, и она станет «12 октября 2011 года».

Отказ от ответственности: только PHP 5.3+.Поскольку ветвь 5.2 прекратила разработку, а 5.3 существует уже почти два года, я не вижу в этом проблемы.

Редактировать: Если у вас нет PHP 5.3 истолбец БД не относится к типу даты, вы можете использовать это расширение в ответ Дагона

SELECT DATE_FORMAT(STR_TO_DATE(date_field, '%Y%m%d'), '%d/%m/%Y') AS date_field ...

См. STR_TO_DATE().

2 голосов
/ 13 апреля 2011

дата_формат: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format

SELECT DATE_FORMAT(date_field,'%d/%m/%Y') as date_out ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...