(PHP 5 >= 5.2.0, PHP 7, PHP 8)
DateTimeInterface::format -- DateTimeImmutable::format -- DateTime::format -- date_format — Возвращает дату, отформатированную согласно переданному формату
Объектно-ориентированный стиль
$format
): string$format
): string$format
): stringПроцедурный стиль
Возвращает строку даты, преобразованной согласно переданному формату.
object
Только для процедурного стиля: объект DateTime, возвращаемый date_create().
format
Шаблон результирующей строки (string) с датой. Смотрите параметры
форматирования ниже. Также существует несколько предопределённых констант даты/времени,
которые могут быть использованы вместо этих параметров. Например:
DATE_RSS
заменяет шаблон 'D, d M Y H:i:s'
.
Символ в строке format |
Описание | Пример возвращаемого значения |
---|---|---|
День | --- | --- |
d |
День месяца, 2 цифры с ведущим нулём | от 01 до 31 |
D |
Текстовое представление дня недели, 3 символа | от Mon до Sun |
j |
День месяца без ведущего нуля | от 1 до 31 |
l (строчная 'L') |
Полное наименование дня недели | от Sunday до Saturday |
N |
Порядковый номер дня недели в соответствии со стандартом ISO 8601 | от 1 (понедельник) до 7 (воскресенье) |
S |
Английский суффикс порядкового числительного дня месяца, 2 символа |
st , nd , rd или
th . Применяется совместно с j
|
w |
Порядковый номер дня недели | от 0 (воскресенье) до 6 (суббота) |
z |
Порядковый номер дня в году (начиная с 0) | От 0 до 365 |
Неделя | --- | --- |
W |
Порядковый номер недели года в соответствии со стандартом ISO 8601; недели начинаются с понедельника | Например: 42 (42-я неделя года) |
Месяц | --- | --- |
F |
Полное наименование месяца, например, January или March | от January до December |
m |
Порядковый номер месяца с ведущим нулём | от 01 до 12 |
M |
Сокращённое наименование месяца, 3 символа | от Jan до Dec |
n |
Порядковый номер месяца без ведущего нуля | от 1 до 12 |
t |
Количество дней в указанном месяце | от 28 до 31 |
Год | --- | --- |
L |
Признак високосного года | 1 , если год високосный, иначе 0 . |
o |
Номер года в соответствии со стандартом ISO 8601. Имеет то же значение, что и
Y , кроме случая, когда номер недели ISO
(W ) принадлежит предыдущему или следующему году; тогда
будет использован год этой недели. |
Примеры: 1999 или 2003 |
X |
Расширенное полное числовое представление года,
не менее 4 цифр, с - для годов до нашей эры
и + для годов нашей эры.
|
Примеры: -0055 , +0787 ,
+1999 , +10191
|
x |
Расширенное полное числовое представление, если требуется
или стандартное полное числовое представление,
если возможно (например, Y ). Не менее четырёх цифр.
Для годов до нашей эры указан префикс - .
У годов после (и включая) 10000 префикс + .
|
Примеры: -0055 , 0787 ,
1999 , +10191
|
Y |
Полное числовое представление года, не менее 4 цифр, с - для годов до нашей эры. |
Примеры: -0055 , 0787 ,
1999 , 2003 ,
10191 .
|
y |
Номер года, 2 цифры | Примеры: 99 , 03 |
Время | --- | --- |
a |
Ante meridiem (лат. "до полудня") или Post meridiem (лат. "после полудня") в нижнем регистре | am или pm |
A |
Ante meridiem или Post meridiem в верхнем регистре | AM или PM |
B |
Время в формате Интернет-времени (альтернативной системы отсчёта времени суток) | от 000 до 999 |
g |
Часы в 12-часовом формате без ведущего нуля | от 1 до 12 |
G |
Часы в 24-часовом формате без ведущего нуля | от 0 до 23 |
h |
Часы в 12-часовом формате с ведущим нулём | от 01 до 12 |
H |
Часы в 24-часовом формате с ведущим нулём | от 00 до 23 |
i |
Минуты с ведущим нулём | от 00 до 59 |
s |
Секунды с ведущим нулём | от 00 до 59 |
u |
Микросекунды. Учтите, что date()
всегда будет возвращать 000000 , т.к. она принимает целочисленный (int)
параметр, тогда как DateTime::format() поддерживает
микросекунды, если DateTime создан с ними.
|
Например: 654321 |
v |
Миллисекунды. Замечание такое же как и для
u .
|
Пример: 654 |
Часовой пояс | --- | --- |
e |
Идентификатор часового пояса | Примеры: UTC , GMT , Atlantic/Azores |
I (заглавная i) |
Признак летнего времени | 1 , если дата соответствует летнему времени, 0 в противном случае. |
O |
Разница с временем по Гринвичу без двоеточия между часами и минутами | Например: +0200 |
P |
Разница с временем по Гринвичу с двоеточием между часами и минутами | Например: +02:00 |
p |
То же, что и P , но возвращает Z вместо +00:00
(доступен, начиная с PHP 8.0.0)
|
Например: Z или +02:00 |
T |
Аббревиатура часового пояса, если известна; в противном случае смещение по Гринвичу. | Примеры: EST , MDT , +05 |
Z |
Смещение часового пояса в секундах. Для часовых поясов, расположенных западнее UTC, возвращаются отрицательные числа, а для расположенных восточнее UTC - положительные. | от -43200 до 50400 |
Полная дата/время | --- | --- |
c |
Дата в формате стандарта ISO 8601 | 2004-02-12T15:19:21+00:00 |
r |
Дата в формате » RFC 222/» RFC 5322 | Например: Thu, 21 Dec 2000 16:01:07 +0200 |
U |
Количество секунд, прошедших с начала Эпохи Unix (1 января 1970 00:00:00 GMT) | Смотрите также time() |
Любые другие символы, встреченные в строке-шаблоне, будут выведены в результирующую
строку без изменений. Z
всегда возвращает 0
при
использовании gmdate().
Замечание:
Поскольку рассматриваемая функция принимает в качестве параметра временные метки типа int, форматирующий символ
u
будет полезен только при использовании функции date_format() и пользовательских меток времени, созданных с помощью функции date_create().
Возвращает строку с отформатированной датой в случае успешного выполнения.
Версия | Описание |
---|---|
8.2.0 |
Добавлены символы форматирования X и x .
|
8.0.0 |
Добавлен символ форматирования p .
|
Пример #1 Пример использования DateTimeInterface::format()
Объектно-ориентированный стиль
<?php
$date = new DateTimeImmutable('2000-01-01');
echo $date->format('Y-m-d H:i:s');
?>
Процедурный стиль
<?php
$date = date_create('2000-01-01');
echo date_format($date, 'Y-m-d H:i:s');
?>
Результат выполнения данного примера:
2000-01-01 00:00:00
Пример #2 Больше примеров
<?php
// установка часового пояса по умолчанию.
date_default_timezone_set('UTC');
// сейчас
$date = new DateTimeImmutable();
// Выведет что-то подобное: Wednesday
echo $date->format('l'), "\n";
// Выведет что-то подобное: Wednesday 19th of October 2022 08:40:48 AM
echo $date->format('l jS \o\f F Y h:i:s A'), "\n";
/* Использование констант в параметре format */
// Выведет что-то подобное: Wed, 19 Oct 2022 08:40:48 +0000
echo $date->format(DateTimeInterface::RFC2822), "\n";
?>
Вы можете предотвратить расширение распознанного символа в строке формата, экранировав его предшествующим обратным слешем. Если слеш уже является специальной последовательностью, его также может потребоваться экранировать.
Пример #3 Экранирование символов во время форматирования
<?php
$date = new DateTimeImmutable();
// Выведет что-то подобное: Wednesday the 19th
echo $date->format('l \t\h\e jS');
?>
Для форматирования дат на других языках, вместо метода DateTimeInterface::format() можно использовать метод IntlDateFormatter::format().
Данный метод не использует настройки локали. Вывод производится на английском языке.