Ответ 1
Вы можете легко использовать класс DateTime для этого
$retrieved = '20121226';
$date = DateTime::createFromFormat('Ymd', $retrieved);
echo $date->format('d/m/Y');
У меня есть таблица базы данных MySQL, в которой дата хранится в формате YYYYMMDD. Например: 20121226.
Я хочу показать эту дату в формате DD/MM/YYYY. Например: 26/12/2012
Я придумал использовать substr
для извлечения дня, месяца и года отдельно.
Я хотел бы знать, есть ли более простой способ сделать это.
Кроме того, есть ли способ конвертировать эту дату в формат "26 декабря 2012" без необходимости писать отдельный код?
Вы можете легко использовать класс DateTime для этого
$retrieved = '20121226';
$date = DateTime::createFromFormat('Ymd', $retrieved);
echo $date->format('d/m/Y');
В вашей инструкции SQL вы можете форматировать дату по-разному.
SELECT DATE_FORMAT(date_column, '%d/%m/%Y') AS my_date FROM my_table
Это решение:
SELECT DATE_FORMAT('20121226', '%d/%m/%Y');
= >
DATE_FORMAT('20121226', '%d/%m/%Y')
26/12/2012
ИЛИ
SELECT DATE_FORMAT('20121226', '%W %M %Y');
= >
DATE_FORMAT('20121226', '%W %M %Y')
Wednesday December 2012
Проверьте это для большего форматирования: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-format
См. эту статью для получения информации о том, как обрабатывать значения DATETIME в PHP и MySQL. http://www.experts-exchange.com/Web_Development/Web_Languages-Standards/PHP/A_201-Handling-date-and-time-in-PHP-and-MySQL.html
Нет необходимости создавать экземпляр класса datetime, потому что strtotime()
просто принимает значение даты в форме вашего ввода.
Код: (Демо)
echo date('d/m/Y', strtotime('20121226'));
// output: 26/12/2012