date() – форматирование даты PHP
date($format, $timestamp) – форматирует дату/время по шаблону, где:
Результат работы функции зависит от настроек часового пояса, установить его можно следующем образом:
Основные параметры шаблона
Символ | Описание | Пример возвращаемого значения |
---|---|---|
День | ||
j | День месяца без ведущего нуля | от 1 до 31 |
d | День месяца, 2 цифры с ведущим нулём | от 01 до 31 |
l | Полное наименование дня недели | от Sunday до Saturday |
D | День недели, 3 символа | от Mon до Sun |
z | Порядковый номер дня в году | От 0 до 365 |
Неделя | ||
N | Порядковый номер дня недели | от 1 (понедельник) до 7 (воскресенье) |
W | Порядковый номер недели года | Например: 42 (42-я неделя года) |
Месяц | ||
n | Порядковый номер месяца без ведущего нуля | от 1 до 12 |
m | Порядковый номер месяца с ведущим нулём | от 01 до 12 |
F | Полное название месяца | от January до December |
M | Сокращенное наименование месяца, 3 символа | от Jan до Dec |
t | Количество дней в месяце | от 28 до 31 |
Год | ||
Y | Год, 4 цифры | 2019 |
y | Год, 2 цифры | 19 |
Время | ||
g | Часы в 12-часовом формате без ведущего нуля | от 1 до 12 |
h | Часы в 12-часовом формате с ведущим нулём | от 01 до 12 |
G | Часы в 24-часовом формате без ведущего нуля | от 0 до 23 |
H | Часы в 24-часовом формате с ведущим нулём | от 00 до 23 |
i | Минуты с ведущим нулём | от 00 до 59 |
s | Секунды с ведущим нулём | от 00 до 59 |
v | Миллисекунды | 123 |
Полная дата/время | ||
c | Дата в формате ISO 8601 | 2004-02-12T15:19:21+00:00 |
r | Дата в формате RFC 2822 | Thu, 21 Dec 2000 16:01:07 +0200 |
дд.мм.ггг (dd.mm.yyyy)
Самый распространенные форматы: dd.mm.yyyy и dd.mm.yyyy hh:ss .
echo date('d.m.Y'); // 25.07.2023 echo date('d.m.Y H:i'); // 25.07.2023 04:48 echo date('d.m.Y H:i:s'); // 25.07.2023 04:48:52
гггг-мм-дд (yyyy.mm.dd)
Используется в MySQL тип поля DATE.
Дата на английском php
This page describes the different date formats in a BNF-like syntax, that the DateTimeImmutable , DateTime , date_create() , date_create_immutable() , and strtotime() parser understands.
To format DateTimeImmutable and DateTime objects, please refer to the documentation of the DateTimeInterface::format() method.
Description | Format | Examples |
---|---|---|
daysuf | «st» | «nd» | «rd» | «th» | |
dd | (2?7 | «3»[01]) daysuf ? | «7th», «22nd», «31» |
DD | «0» 9 | 13 | «3» [01] | «07», «31» |
m | ‘january’ | ‘february’ | ‘march’ | ‘april’ | ‘may’ | ‘june’ | ‘july’ | ‘august’ | ‘september’ | ‘october’ | ‘november’ | ‘december’ | ‘jan’ | ‘feb’ | ‘mar’ | ‘apr’ | ‘may’ | ‘jun’ | ‘jul’ | ‘aug’ | ‘sep’ | ‘sept’ | ‘oct’ | ‘nov’ | ‘dec’ | «I» | «II» | «III» | «IV» | «V» | «VI» | «VII» | «VIII» | «IX» | «X» | «XI» | «XII» | |
M | ‘jan’ | ‘feb’ | ‘mar’ | ‘apr’ | ‘may’ | ‘jun’ | ‘jul’ | ‘aug’ | ‘sep’ | ‘sept’ | ‘oct’ | ‘nov’ | ‘dec’ | |
mm | «0»? 7 | «1»1 | «0», «04», «7», «12» |
MM | «0» 9 | «1»1 | «00», «04», «07», «12» |
y | 6 | «00», «78», «08», «8», «2008» |
yy | 5 | «00», «08», «78» |
YY | 5 | «2000», «2008», «1978» |
YYY | 8 | «81412», «20192» |
Description | Format | Examples |
---|---|---|
American month and day | mm «/» dd | «5/12», «10/27» |
American month, day and year | mm «/» dd «/» y | «12/22/78», «1/17/2006», «1/17/6» |
Four digit year, month and day with slashes | YY «/» mm «/» dd | «2008/6/30», «1978/12/22» |
Four digit year and month (GNU) | YY «-» mm | «2008-6», «2008-06», «1978-12» |
Year, month and day with dashes | y «-» mm «-» dd | «2008-6-30», «78-12-22», «8-6-21» |
Day, month and four digit year, with dots, tabs or dashes | dd [.\t-] mm [.-] YY | «30-6-2008», «22.12.1978» |
Day, month and two digit year, with dots or tabs | dd [.\t] mm «.» yy | «30.6.08», «22\t12.78» |
Day, textual month and year | dd ([ \t.-])* m ([ \t.-])* y | «30-June 2008», «22DEC78», «14 III 1879» |
Textual month and four digit year (Day reset to 1) | m ([ \t.-])* YY | «June 2008», «DEC1978», «March 1879» |
Four digit year and textual month (Day reset to 1) | YY ([ \t.-])* m | «2008 June», «1978-XII», «1879.MArCH» |
Textual month, day and year | m ([ .\t-])* dd [,.stndrh\t ]+ y | «July 1st, 2008», «April 17, 1790», «May.9,78» |
Textual month and day | m ([ .\t-])* dd [,.stndrh\t ]* | «July 1st,», «Apr 17», «May.9» |
Day and textual month | dd ([ .\t-])* m | «1 July», «17 Apr», «9.May» |
Month abbreviation, day and year | M «-» DD «-» y | «May-09-78», «Apr-17-1790» |
Year, month abbreviation and day | y «-» M «-» DD | «78-Dec-22», «1814-MAY-17» |
Year (and just the year) | YY | «1978», «2008» |
Year (expanded, 5-19 digits with sign) | [+-] YYY | «-81120», «+20192» |
Textual month (and just the month) | m | «March», «jun», «DEC» |
Description | Format | Examples |
---|---|---|
Eight digit year, month and day | YY MM DD | «15810726», «19780417», «18140517» |
Four digit year, month and day with slashes | YY «/» MM «/» DD | «2008/06/30», «1978/12/22» |
Two digit year, month and day with dashes | yy «-» MM «-» DD | «08-06-30», «78-12-22» |
Four digit year with optional sign, month and day | [+-]? YY «-» MM «-» DD | «-0002-07-26», «+1978-04-17», «1814-05-17» |
Five+ digit year with required sign, month and day | [+-] YYY «-» MM «-» DD | «-81120-02-26», «+20192-04-17» |
Note:
For the y and yy formats, years below 100 are handled in a special way when the y or yy symbol is used. If the year falls in the range 0 (inclusive) to 69 (inclusive), 2000 is added. If the year falls in the range 70 (inclusive) to 99 (inclusive) then 1900 is added. This means that «00-01-01» is interpreted as «2000-01-01».
Note:
The «Day, month and two digit year, with dots or tabs» format ( dd [.\t] mm «.» yy ) only works for the year values 61 (inclusive) to 99 (inclusive) — outside those years the time format » HH [.:] MM [.:] SS » has precedence.
Note:
The «Year (and just the year)» format only works if a time string has already been found — otherwise this format is recognised as HH MM .
It is possible to over- and underflow the dd and DD format. Day 0 means the last day of previous month, whereas overflows count into the next month. This makes «2008-08-00» equivalent to «2008-07-31» and «2008-06-31» equivalent to «2008-07-01» (June only has 30 days).
Note that the day range is restricted to 0-31 as indicated by the regular expression above. Thus «2008-06-32» is not a valid date string, for instance.
It is also possible to underflow the mm and MM formats with the value 0. A month value of 0 means December of the previous year. As example «2008-00-22» is equivalent to «2007-12-22».
If you combine the previous two facts and underflow both the day and the month, the following happens: «2008-00-00» first gets converted to «2007-12-00» which then gets converted to «2007-11-30». This also happens with the string «0000-00-00», which gets transformed into «-0001-11-30» (the year -1 in the ISO 8601 calendar, which is 2 BC in the proleptic Gregorian calendar).
User Contributed Notes
date_format
Возвращает строку даты, преобразованной согласно переданному формату.
Список параметров
Только для процедурного стиля: объект DateTime , возвращаемый date_create() .
Шаблон результирующей строки ( 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() .
Возвращаемые значения
Возвращает строку с отформатированной датой в случае успешного выполнения.