Php красиво вывести дату

Функция date() в php: распространенные форматы, примеры, советы

Функция date предназначена для форматирования даты т.е. она преобразует timestamp в строку.

date(string $format, int|null $timestamp = null): string — сигнатура функции

Если $timestamp не указан, то будет форматироваться текущая дата т.е. которая сейчас установлена на сервере.

Пример, который выводит текущую дату на экран:

Этот код выведет на экран текущую в таком виде: 2021-06-26 12:09:59

Вторым параметром date() принимает timestamp.

Кстати, текущий timestamp можно получить функцией time(), по умолчанию он и используется, поэтому если вам нужна текущая дата, то его можно не указывать:

date('Y-m-d H:i:s') == date('Y-m-d H:i:s', time()); // всегда true
  • Y — год
  • m — месяц
  • d — день
  • H — час
  • i — минута
  • s — секунда

Подробная таблица о символах, которые распознаются в параметре $format находится здесь: https://www.php.net/manual/ru/datetime.format.php

Готовые константы

В PHP есть множество предопределенных констант, для формата даты и времени. Их можно использовать чтобы не допустить ошибку при написании формата.

Константа Формат Пример
DateTime::ATOM Y-m-d\TH:i:sP 2021-06-26T12:09:59+03:00
DateTime::COOKIE l, d-M-Y H:i:s T Saturday, 26-Jun-2021 12:09:59 MSK
DateTime::ISO8601 Y-m-d\TH:i:sO 2021-06-26T12:09:59+0300
DateTime::RFC822 D, d M y H:i:s O Sat, 26 Jun 21 12:09:59 +0300
DateTime::RFC850 l, d-M-y H:i:s T Saturday, 26-Jun-21 12:09:59 MSK
DateTime::RFC1036 D, d M y H:i:s O Sat, 26 Jun 21 12:09:59 +0300
DateTime::RFC1123 D, d M Y H:i:s O Sat, 26 Jun 2021 12:09:59 +0300
DateTime::RFC7231 D, d M Y H:i:s \G\M\T Sat, 26 Jun 2021 12:09:59 GMT
DateTime::RFC2822 D, d M Y H:i:s O Sat, 26 Jun 2021 12:09:59 +0300
DateTime::RFC3339 Y-m-d\TH:i:sP 2021-06-26T12:09:59+03:00
DateTime::RFC3339_EXTENDED Y-m-d\TH:i:s.vP 2021-06-26T12:09:59.000+03:00
DateTime::RSS D, d M Y H:i:s O Sat, 26 Jun 2021 12:09:59 +0300
DateTime::W3C Y-m-d\TH:i:sP 2021-06-26T12:09:59+03:00

Самые распространенные форматы даты и времени

Допустим текущее время 2021-06-26 12:06:59. Давайте посмотрим как будет вести себя функция date в зависимости от формата.

Формат даты и времени в России:

echo date('d.m.Y'); // 26.06.2021 echo date('d.m.Y H:i'); // 26.06.2021 12:09

Для хранения в поле date в mysql

Для хранения в поле datetime в mysql

echo date('Y-m-d H:m:s'); // 2021-06-26 12:06:59

С часовым поясом

echo date('Y-m-d H:m:sO'); // 2021-06-26 12:06:59+0300 echo date('Y-m-d H:m:sP'); // 2021-06-26 12:06:59+03:00

Дата в формате ISO 8601

echo date('c'); // 2021-06-26T12:09:59+03:00

Дата в формате RFC822

echo date(DATE_RFC822); // Sat, 26 Jun 21 12:09:59 +0300

Дата в формате RFC 2822

echo date('r'); // Sat, 26 Jun 2021 12:09:59 +0300

Дата начала текущего месяца

echo date('Y-m-01'); // 2021-06-01 (начало месяца)

Дата конца текущего месяца

echo date('Y-m-t'); // 2021-06-30 (конец месяца)

Текущий квартал

echo intval((date('n') + 2) / 3); // 2

Другие форматы

Если вам недостаточно приведенных примеров, то можете написать свой формат даты и времени. Для этого вам нужно написать свой параметр $format

Читайте также:  Различные шрифты в html

Символы, которые распознаются в параметре $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
Y Порядковый номер года, 4 цифры Примеры: 1999, 2003
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 Например: +02:00
T Аббревиатура временной зоны Примеры: EST, MDT .
Z Смещение временной зоны в секундах. Для временных зон, расположенных западнее UTC возвращаются отрицательные числа, а расположенных восточнее UTC — положительные. от -43200 до 50400
Полная дата/время
c Дата в формате стандарта ISO 8601 2004-02-12T15:19:21+00:00
r Дата в формате » RFC 2822 Например: Thu, 21 Dec 2000 16:01:07 +0200
U Количество секунд, прошедших с начала Эпохи Unix (1 января 1970 00:00:00 GMT) Смотрите также time()
Читайте также:  Блокировка php сессий wordpress

Источник

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'); // 27.07.2023 echo date('d.m.Y H:i'); // 27.07.2023 14:16 echo date('d.m.Y H:i:s'); // 27.07.2023 14:16:25

гггг-мм-дд (yyyy.mm.dd)

Используется в MySQL тип поля DATE.

Источник

Форматирование даты в 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
Читайте также:  Tiny python projects pdf

Полный список доступных символов формата, вы найдёте в официальной документации по 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. Желаю удачи!

Не пропусти свежие посты, подпишись:

Источник

Вывод даты с русскими месяцами

Вывод даты с русскими месяцами

function date_ru($timestamp, $show_time = false) < if (empty($timestamp)) < return '-'; >else < $now = explode(' ', date('Y n j H i')); $value = explode(' ', date('Y n j H i', $timestamp)); if ($now[0] == $value[0] && $now[1] == $value[1] && $now[2] == $value[2]) < return 'Сегодня в ' . $value[3] . ':' . $value[4]; >else < $month = array( '', 'января', 'февраля', 'марта', 'апреля', 'мая', 'июня', 'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря' ); $out = $value[2] . ' ' . $month[$value[1]] . ' ' . $value[0]; if ($show_time) < $out .= ' в ' . $value[3] . ':' . $value[4]; >return $out; > > >
echo date_ru(time() - 60); // Сегодня в 19:43 echo date_ru(1549682408); // 9 февраля 2019 echo date_ru(1549682408, true); // 9 февраля 2019 в 06:20 echo date_ru(0); // -

Версия со сокращенными месяцами

function date_ru($timestamp, $show_time = false) < if (empty($timestamp)) < return '-'; >else < $now = explode(' ', date('Y n j H i')); $value = explode(' ', date('Y n j H i', $timestamp)); if ($now[0] == $value[0] && $now[1] == $value[1] && $now[2] == $value[2]) < return 'Сегодня в ' . $value[3] . ':' . $value[4]; >else < $month = array( '', 'янв', 'фев', 'мар', 'апр', 'май', 'июн', 'июл', 'авг', 'сен', 'окт', 'ноя', 'дек' ); $out = $value[2] . ' ' . $month[$value[1]] . ' ' . $value[0]; if ($show_time) < $out .= ' в ' . $value[3] . ':' . $value[4]; >return $out; > > >
echo date_ru(time() - 60); // Сегодня в 19:04 echo date_ru(1549682408); // 9 мар 2019 echo date_ru(1549682408, true); // 9 мар 2019 в 06:20 echo date_ru(0); // -

На многих хостингах не установлен часовой пояс, поэтому функция date() может работать некорректно. Задать его можно следующим образом: date_default_timezone_set(‘Europe/Moscow’);

Источник

Оцените статью