(PHP 5 >= 5.2.0, PHP 7, PHP 8)
DateTimeInterface::format -- DateTimeImmutable::format -- DateTime::format -- date_format — Возвращает дату, отформатированную согласно переданному формату
Объектно-ориентированный стиль
Процедурный стиль
Возвращает строку даты, преобразованной согласно переданному формату.
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";
// Выведет что-то подобное: 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().
Данный метод не использует настройки локали. Вывод производится на английском языке.