Уроки 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 день к параметру дня, чтобы получить дату завтрашнего дня.