$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()
.