Преобразование даты в PHP. Как организовать вывод строки в нужном формате?

преобразование даты в php. как организовать вывод строки в нужном формате?

Способы форматирования

Ранее мы рассматривали несколько примеров, в которых участвовали переменные, содержащие строки форматирования дат. Эти строки представляют из себя не что иное, как наборы специальных символов. В зависимости от контекста применения, они могут определять в каком формате осуществлять вывод на экран пользователя, либо участвовать в разборе даты. Например, в прошлом уроке мы использовали строку форматирования, чтобы функция могла разобрать специфичный формат даты и преобразовать её в временную метку.

В PHP для вывода даты определенного формата воспользуйтесь функцией date() или методом format() класса DateTime. Обратите внимание на пример, приведенный ниже. В первых параметрах функции и метода передаются строки форматирования с набором специальных символов.

echo date('D, d M y H:i:s');   //Mon, 26 Feb 18 20:41:23

$date = new DateTime();
echo $date->format('H:i l d'); //20:41 Monday 26

Специальные символы

PHP определяет большое количество специальных символов, которые могут использоваться для преобразования и форматирования дат перед выводом пользователю. Мы рассмотрим лишь некоторые. С остальными можно ознакомиться на странице официальной документации.

Нужно отметить, что наряду со специальными символами форматирования можно использовать любые другие символы и буквы. Специальные символы будут заменены обработанными значениями, а остальные выведены как есть. Также добавление обратной косой черты «\» перед символом заставит вывести его без преобразования.

Описание специальных символов форматирования:

Вид Символ Пояснение Допустимые значения
Часы H Числовое представление по 24-часовой шкале с начальным нулем От 00 до 24
Часы h Числовое представление по 12-часовой шкале с начальным нулем От 01 до 12
Часы G Числовое представление по 24-часовой шкале От 0 до 23
Часы g Числовое представление по 12-часовой шкале От 1 до 12
Часы a Обозначение половины дня am или pm
Минуты i Число с начальным нулем От 00 до 59
Секунды s Число с начальным нулем От 00 до 59
День d Порядковый номер внутри месяца с начальным нулем От 01 до 31
День z Порядковый номер внутри года От 0 до 365
День N Порядковый номер внутри недели От 1 до 7
День l Полное название От Sunday до Saturday
Неделя W Порядковый номер От 1 до 53
Месяц m Порядковый номер с начальным нулем От 01 до 12
Месяц n Порядковый номер От 1 до 12
Месяц F Полное название

От January до December

Год Y Порядковый номер с полным числовым обозначением Например, 2018
Год y Порядковый номер. Только последние две цифры Например, 18
//Вы можете размещать спецсимволы прямо в тексте
echo date('Я пришел домой поздно вечером в H:i');     //Я проснулся рано утром в 20:44
echo date('Сегодня l и мне кажется, что я приболел'); //Сегодня Monday и мне кажется, что я приболел
echo date('Y год будет лучшим. Я так думаю');         //2018 год будет лучшим. Я так думаю

//Спецсимволы можно экранировать
echo date('Мне нарвится форма буквы \Y');             //Мне нарвится форма буквы Y

Предопределенные константы

Существуют задачи требующие преобразования дат в стандартизированные форматы. Например, ISO8601 или ATOM. PHP имеет ряд предопределенных констант, значениями которых являются соответствующие форматные строки. Получить к ним доступ можно как из глобального пространства имен, так и через класс DateTime.

Описание констант:

Имя в глобальном пространстве Константа класса Значение

Пример

DATE_ATOM DateTime::ATOM Y-m-d\TH:i:sP 2018-02-24T22:10:02+02:00
DATE_ISO8601 DateTime::ISO8601 Y-m-d\TH:i:sO 2018-02-24T22:10:02+0200
DATE_RFC822 DateTime::RFC822 D, d M y H:i:s O Sat, 24 Feb 18 22:10:02 +0200
DATE_RFC850 DateTime::RFC850 l, d-M-y H:i:s T Saturday, 24-Feb-18 22:10:02 EET
DATE_RFC1036 DateTime::RFC1036 D, d M y H:i:s O Sat, 24 Feb 18 22:10:02 +0200
DATE_RFC1123 DateTime::RFC1123 D, d M Y H:i:s O Sat, 24 Feb 2018 22:10:02 +0200
DATE_RFC2822 DateTime::RFC2822 D, d M Y H:i:s O Sat, 24 Feb 2018 22:10:02 +0200
DATE_RFC3339 DateTime::RFC3339 Y-m-d\TH:i:sP 2018-02-24T22:10:02+02:00
DATE_RSS DateTime::RSS

D, d M Y H:i:s O

Sat, 24 Feb 2018 22:10:02 +0200
DATE_W3C DateTime::W3C Y-m-d\TH:i:sP 2018-02-24T22:10:02+02:00

Последние публикации