Уроки PHP – получение и вывод даты и времени
Сегодняшняя статья посвящена рассмотрению того, как на практике использовать функции по получению даты и времени в PHP, а также обзору способов вывода и форматирования даты и времени.
Основные моменты для дат и времени в PHP
Функции, которые обрабатывают дату и время в PHP, позволяют получать дату и время с того сервера, на котором выполняется скрипт. Также они позволяют манипулировать, редактировать, форматировать эти значения перед их отображением на экран (выводом). Сегодня мы рассмотрим самые важные функции для работы с датой и временем.
Функция PHP date()
Наиболее используемая функция для обработки даты и времени – это функция date()
. Эта функция возвращает фактическую (системную) дату и время в указанном вами формате. Также функция может конвертировать формат отметки времени (временная метка, метка времени или timestamp) в удобочитаемый формат. Полный синтаксис функции следующий:
date ( string $format [, int $timestamp = time() ] )
Функция возвращает строку, которая отформатирована в соответствии с указанным шаблоном (format
). Аргумент timestamp
задает метку времени; если timestamp не задан, тогда используется текущее системное время. Указывать временную метку необязательно, если вы ее не укажете, тогда она по умолчанию будет равна значению, которое возвращается функцией time()
.
Ниже представлены практические примеры получения фактической информации о дате и времени:
<?php echo "<p>Отображение текущей даты: " . date('d-m-Y') . "</p>"; echo "<p>Отображение текущего времени: " . date('H:i:s') . "</p>"; echo "<p>Отображение текущей даты и времени: " . date('d-m-Y H:i:s') . "</p>"; echo "<p>Отображение текущей даты и времени в длинном формате: " . date('d F Y, D - g:i:s A') . "</p>"; ?>
В данных примерах используются разные шаблоны формата даты и времени. Ниже представлена таблица с расшифровкой некоторых символов в строке format
.
Символ в строке format |
Описание | Пример возвращаемого значения |
---|---|---|
День | — | — |
d | День месяца с 2-мя цифрами | от 01 до 31 |
D | День недели в текстовом формате, 3 символа | от Mon до Sun |
z | Порядковый номер дня в году (начиная с 0) | От 0 до 365 |
Месяц | — | — |
F | Полное название месяца, например, January или March | от January до December |
m | Порядковый номер месяца, 2 цифры | от 01 до 12 |
M | Сокращенное название месяца, 3 символа | от Jan до Dec |
Год | — | — |
Y | Порядковый номер года, 4 цифры | Примеры: 1999, 2019 |
y | Порядковый номер года, 2 цифры | Примеры: 99, 19 |
Время | — | — |
a | Ante meridiem (лат. «до полудня») или Post meridiem (лат. «после полудня») в нижнем регистре | am или pm |
A | Ante meridiem или Post meridiem в верхнем регистре | AM или PM |
g | Часы в 12-часовом формате | от 1 до 12 |
G | Часы в 24-часовом формате | от 0 до 23 |
h | Часы в 12-часовом формате | от 01 до 12 |
H | Часы в 24-часовом формате, 2 цифры | от 00 до 23 |
i | Минуты, 2 цифры | от 00 до 59 |
s | Секунды, 2 цифры | от 00 до 59 |
Функция PHP mktime()
Иногда вам нужно получить метку времени в прошлом или будущем. Вы можете сделать это с помощью функции mktime()
. Вам нужно указать нужную дату, и она возвращается с меткой времени Unix. Синтаксис данной функции следующий:
int mktime ( [int $hour [, int $minute [, int $second [, int $month [, int $day [, int $year]]]]]] )
Здесь используются следующие данные:
hour
– Количество часов, прошедших с начала дня, указанного параметрами month, day и year.minute
– Количество минут, прошедших от начала часа, указанного параметром hour.second
– Количество секунд, прошедших от начала минуты, указанной параметром minute.month
– Количество месяцев, прошедших с конца предыдущего года.day
– Количество дней, прошедших с конца предыдущего месяца.year
– Номер года, может быть указан двумя или четырьмя цифрами.
Вы можете использовать эту временную метку с вышеупомянутой функцией даты (date()
), чтобы отобразить ее в нужном формате. Ниже представлены некоторые практические примеры использования этой функции:
<?php echo "<p>Отображение даты, сгенерированной функцией mktime: " . date('d-m-Y', mktime(0, 0, 0, 5, 25, 2019)) . "</p>"; echo "<p>Отображение даты, сгенерированной функцией mktime с неверным указанием дня и месяца: " . date('d-m-Y', mktime(0, 0, 0, 14, 32, 2019)) . "</p>"; ?>
Если вы хотите получить дату завтрашнего дня, вы можете использовать следующий код:
<?php echo "<p>Сегодняшняя дата: " . date('d-m-Y') . "</p>"; echo "<p>Завтра будет: " . date('d-m-Y', mktime(0, 0, 0, date('m'), date('d')+1, date('Y') ) ) . "</p>"; ?>
В данном примере мы использовали функцию mktime()
и добавили 1 день к параметру дня, чтобы получить дату завтрашнего дня.