Оглавление
Для форматирования даты и времени в PHP используется функция
date() принимающая 2 параметра, формат даты (строка вида «d.m.Y» например) и Unix time метку времени. Если второй параметр не передать, функция возьмёт текущую метку на сервере где исполняется скрипт.
echo date('d.m.Y'); //19.01.2023
Результат работы функции зависит от настроек часового пояса, задать который можно функцией
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)
Используйте этот формат, если вы работаете с полями типаDATE в MySQL
echo date('Y-m-d'); //2023-01-19
Формат гггг-мм-дд чч:мм:сс (yyyy-mm-dd hh.mm.ss)
Это так же относится к MySQL для полей типаDATETIME
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 2822, разница только в сокращенном годе. Обычно используется в RSS
// 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. Желаю удачи!