DateTimeInterface::format

DateTimeImmutable::format

DateTime::format

date_format

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

DateTimeInterface::format -- DateTimeImmutable::format -- DateTime::format -- date_formatВозвращает дату, отформатированную согласно переданному формату

Описание

Объектно-ориентированный стиль

publicDateTimeInterface::format(string$format): string
publicDateTimeImmutable::format(string$format): string
publicDateTime::format(string$format): string

Процедурный стиль

Возвращает строку даты, преобразованной согласно переданному формату.

Список параметров

object

Только для процедурного стиля: объект DateTime, который возвращает функция date_create().

format

Шаблон результирующей строки (string) с датой. Смотрите параметры форматирования ниже. Также существует несколько предопределённых констант даты/времени, которые могут быть использованы вместо этих параметров. Например: DATE_RSS заменяет шаблон 'D, d M Y H:i:s'.

В параметре format распознаются следующие символы
Символ в строке 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
Время------
aAnte meridiem (лат. «до полудня») или Post meridiem (лат. «после полудня») в нижнем регистреam или pm
AAnte 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 86012004-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().

Примечания

Данный метод не использует настройки локали. Вывод производится на английском языке.

Смотрите также

  • date() - Форматирует временную метку Unix
To Top