- The DateTimeInterface interface
- Interface synopsis
- Predefined Constants
- Changelog
- Table of Contents
- Форматирование даты в PHP
- Основные параметры шаблона функции date()
- Формат дд.мм.гггг (dd.mm.yyyy)
- Формат гггг-мм-дд (yyyy.mm.dd)
- Формат гггг-мм-дд чч:мм:сс (yyyy-mm-dd hh.mm.ss)
- Дата в формате ISO 8601
- Дата в формате RFC 822
- Дата в формате RFC 3339
- Дата с русским наименованием месяцев
- date() – форматирование даты PHP
- Основные параметры шаблона
- дд.мм.ггг (dd.mm.yyyy)
- гггг-мм-дд (yyyy.mm.dd)
The DateTimeInterface interface
DateTimeInterface was created so that parameter, return, or property type declarations may accept either DateTimeImmutable or DateTime as a value. It is not possible to implement this interface with userland classes.
Common constants that allow for formatting DateTimeImmutable or DateTime objects through DateTimeImmutable::format() and DateTime::format() are also defined on this interface.
Interface synopsis
Predefined Constants
DateTimeInterface::ATOM DATE_ATOM Atom (example: 2005-08-15T15:52:01+00:00) DateTimeInterface::COOKIE DATE_COOKIE HTTP Cookies (example: Monday, 15-Aug-2005 15:52:01 UTC) DateTimeInterface::ISO8601 DATE_ISO8601 ISO-8601 (example: 2005-08-15T15:52:01+0000)
Note: This format is not compatible with ISO-8601, but is left this way for backward compatibility reasons. Use DateTimeInterface::ISO8601_EXPANDED , DateTimeInterface::ATOM for compatibility with ISO-8601 instead. (ref ISO8601:2004 section 4.3.3 clause d)
DateTimeInterface::ISO8601_EXPANDED DATE_ISO8601_EXPANDED ISO-8601 Expanded (example: +10191-07-26T08:59:52+01:00)
Note: This format allows for year ranges outside of ISO-8601’s normal range of 0000 — 9999 by always including a sign character. It also addresses that that timezone part ( +01:00 ) is compatible with ISO-8601.
DateTimeInterface::RFC822 DATE_RFC822 RFC 822 (example: Mon, 15 Aug 05 15:52:01 +0000) DateTimeInterface::RFC850 DATE_RFC850 RFC 850 (example: Monday, 15-Aug-05 15:52:01 UTC) DateTimeInterface::RFC1036 DATE_RFC1036 RFC 1036 (example: Mon, 15 Aug 05 15:52:01 +0000) DateTimeInterface::RFC1123 DATE_RFC1123 RFC 1123 (example: Mon, 15 Aug 2005 15:52:01 +0000) DateTimeInterface::RFC7231 DATE_RFC7231 RFC 7231 (since PHP 7.0.19 and 7.1.5) (example: Sat, 30 Apr 2016 17:52:13 GMT) DateTimeInterface::RFC2822 DATE_RFC2822 RFC 2822 (example: Mon, 15 Aug 2005 15:52:01 +0000) DateTimeInterface::RFC3339 DATE_RFC3339 Same as DATE_ATOM DateTimeInterface::RFC3339_EXTENDED DATE_RFC3339_EXTENDED RFC 3339 EXTENDED format (example: 2005-08-15T15:52:01.000+00:00) DateTimeInterface::RSS DATE_RSS RSS (example: Mon, 15 Aug 2005 15:52:01 +0000) DateTimeInterface::W3C DATE_W3C World Wide Web Consortium (example: 2005-08-15T15:52:01+00:00)
Changelog
Version | Description |
---|---|
8.2.0 | The constant DateTimeInterface::ISO8601_EXPANDED was added. |
7.2.0 | The class constants of DateTime are now defined on DateTimeInterface . |
Table of Contents
- DateTimeInterface::diff — Returns the difference between two DateTime objects
- DateTimeInterface::format — Returns date formatted according to given format
- DateTimeInterface::getOffset — Returns the timezone offset
- DateTimeInterface::getTimestamp — Gets the Unix timestamp
- DateTimeInterface::getTimezone — Return time zone relative to given DateTime
- DateTime::__wakeup — The __wakeup handler
Форматирование даты в PHP
Не пропусти свежие посты, подпишись:
Для форматирования даты и времени в PHP используется функция date() принимающая 2 параметра, формат даты (строка вида «d.m.Y» например) и Unix time метку времени. Если второй параметр не передать, функция возьмёт текущую метку на сервере где исполняется скрипт.
Результат работы функции зависит от настроек часового пояса, задать который можно функцией date_default_timezone_set() вот так:
date_default_timezone_set('Europe/Moscow');
Основные параметры шаблона функции date()
Символ | Описание | Пример возвращаемого значения |
---|---|---|
День | ||
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 |
Полный список доступных символов формата, вы найдёте в официальной документации по php.
Формат дд.мм.гггг (dd.mm.yyyy)
Пожалуй самые распространённые шаблоны форматов даты и времени являются dd.mm.yyyy и dd.mm.yyyy hh:mm , чтобы получить их передайте в date() следующий шаблон:
echo date('d.m.Y'); //19.01.2023 echo date('d.m.Y H:i'); //19.01.2023 23:32 echo date('d.m.Y H:i:s'); //19.01.2023 23:33:25 - можно добавить секунды для точности
Формат гггг-мм-дд (yyyy.mm.dd)
Формат гггг-мм-дд чч:мм:сс (yyyy-mm-dd hh.mm.ss)
echo date('Y-m-d H:i:s'); //2023-01-19 23:35:22
Дата в формате ISO 8601
echo date('c'); //2023-01-19T23:36:04+03:00
Дата в формате RFC 822
// RFC 822 echo date(DATE_RFC822); // Thu, 19 Jan 23 23:38:08 +0300 // RFC 2822 echo date('r'); // Thu, 19 Jan 2023 23:38:08 +0300
Дата в формате RFC 3339
// RFC 3339 echo date(DATE_RFC3339); // 2023-01-19T23:24:53+03:00 // RFC 3339 echo date('Y-m-d\TH:i:sP'); // 2023-01-19T23:24:53+03:00
Дата с русским наименованием месяцев
В доступных форматах php date() нет возможности выводить русскоязычные названия месяцев. Однако, мы можем получить порядковый номер месяца, а следовательно, если подготовить массив с русскими названиями заранее, можно получить требуемый формат даты:
$month = [ 1 => 'января', 2 => 'февраля', 3 => 'марта', 4 => 'апреля', 5 => 'мая', 6 => 'июня', 7 => 'июля', 8 => 'августа', 9 => 'сентября', 10 => 'октября', 11 => 'ноября', 12 => 'декабря' ]; echo date('d') . ' ' . $month[date('n')] . ' ' . date('Y'); // 19 января 2023
И так, мы рассмотрели самые частые случаи использования функции форматирования даты и времени в php. Желаю удачи!
Не пропусти свежие посты, подпишись:
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'); // 28.07.2023 echo date('d.m.Y H:i'); // 28.07.2023 05:10 echo date('d.m.Y H:i:s'); // 28.07.2023 05:10:20
гггг-мм-дд (yyyy.mm.dd)
Используется в MySQL тип поля DATE.