Функции даты и времени в PHP
PHP имеет множество встроенных функций даты и времени для обработки дат и времени.
Основные функции для даты и времени:
date()- форматирует локальную дату и/или времяmktime()- возвращает Unix-метку времени для датыstrtotime()- преобразует английскую текстовую строку даты и времени в Unix-метку времениtime()- возвращает текущее время в виде Unix-метки времениdate_default_timezone_set()- устанавливает часовой пояс по умолчаниюdate_default_timezone_get()- возвращает часовой пояс по умолчанию
Функция PHP Date()
Функция date() используется для форматирования
локальной даты и/или времени в более удобочитаемый формат.
Синтаксис
date(format, timestamp)
| Параметр | Описание |
|---|---|
| format | Обязательный. Определяет формат метки времени |
| timestamp | Необязательный. Определяет Unix-метку времени. По умолчанию - текущие локальные дата и время |
Использование функции Date()
Обязательный параметр format функции date() определяет, как форматировать дату (или время).
Вот некоторые символы, которые часто используются для дат:
- d - День месяца (от 01 до 31)
- j - День месяца (от 1 до 31)
- m - Месяц (от 01 до 12)
- Y - Год (четыре цифры)
- l (строчная 'L') - День недели
- F - Название месяца
Другие символы, такие как "/", "." или "-", также могут быть вставлены между параметрами формата для дополнительного форматирования.
В примере ниже локальная дата форматируется пятью разными способами:
Пример
<?php
echo "Сегодня " . date("Y/m/d") . "<br>";
echo "Сегодня " . date("Y.m.d") . "<br>";
echo "Сегодня " . date("Y-m-d") . "<br>";
echo "Сегодня " . date("l"). "<br>";
echo date('l, F j, Y');
?>
Попробуйте сами »
Совет по PHP - Автоматический год копирайта
Используйте функцию date() для автоматического обновления года копирайта на вашем сайте:
Отображение времени
Функция date() также используется для форматирования локального времени в более удобочитаемый формат.
Вот некоторые символы, которые часто используются для времени:
- H - 24-часовой формат часа (от 00 до 23)
- h - 12-часовой формат часа с ведущими нулями (от 01 до 12)
- i - Минуты с ведущими нулями (от 00 до 59)
- s - Секунды с ведущими нулями (от 00 до 59)
- a - am/pm в нижнем регистре
В примере ниже текущее время выводится в двух разных форматах:
Пример
<?php
echo "Время " . date("H:i:s") . "<br>";
echo "Время " . date("h:i:s a");
?>
Попробуйте сами »
Функция PHP date_default_timezone_set()
Обратите внимание, что функция date() возвращает текущие локальные дату/время вашего сервера!
Чтобы дата и время были правильными в соответствии с конкретным местоположением, также установите нужный часовой пояс с помощью функции
date_default_timezone_set().
В примере ниже часовой пояс устанавливается в "America/New_York", затем выводятся текущие дата и время в указанном формате:
Пример
<?php
date_default_timezone_set("America/New_York");
echo "Текущие дата и время " . date("Y-m-d H:i:s");
?>
Попробуйте сами »
Функция PHP date_default_timezone_get()
Чтобы получить часовой пояс по умолчанию, используемый всеми функциями даты/времени в скрипте, используйте функцию
date_default_timezone_get():
Функция PHP mktime()
Необязательный параметр timestamp в функции
date() определяет метку времени. Если
опущен, используются текущие дата и время (как в примерах выше).
Функция mktime() возвращает Unix-метку времени для даты. Unix-метка времени
— это количество секунд между эпохой Unix
(1 января 1970 00:00:00 GMT) и указанным временем.
Синтаксис
mktime(hour, minute, second, month, day, year)
Следующий пример возвращает Unix-метку времени для даты, а затем использует её, чтобы узнать день этой конкретной даты:
Пример
<?php
// Устанавливаем часовой пояс по умолчанию
date_default_timezone_set("UTC");
$d = mktime(0, 0, 0, 10, 3, 1975);
echo "3 октября 1975 года было " . date("l", $d);
?>
Попробуйте сами »
Функция PHP time()
Функция time() возвращает текущее время в виде Unix-метки времени. Unix-метка времени
— это количество секунд между эпохой Unix
(1 января 1970 00:00:00 GMT) и указанным временем.
Синтаксис
time()
Здесь мы форматируем метку времени в удобочитаемые дату и время:
Пример
<?php
// Получаем текущую Unix-метку времени
$ts = time();
// Форматируем метку времени
$curDate = date('Y-m-d H:i:s', $ts);
echo $curDate;
?>
Попробуйте сами »
Функция PHP strtotime()
Функция strtotime() преобразует английскую текстовую строку даты и времени в Unix-метку времени (количество секунд с 1 января 1970 00:00:00 GMT).
Синтаксис
strtotime(datetime_string, basetimestamp)
Функция strtotime() довольно умна при преобразовании строки в дату, поэтому вы можете вводить различные значения:
Пример
<?php
$d = strtotime("10:30pm November 15 2025");
echo "Дата " . date("Y-m-d H:i:s", $d) . "<br>";
$d = strtotime("now");
echo "Дата " . date("Y-m-d H:i:s", $d) . "<br>";
$d = strtotime("+5 days");
echo "Дата " . date("Y-m-d H:i:s", $d) . "<br>";
$d = strtotime("+2 weeks 4 days 2 hours 20 seconds");
echo "Дата " . date("Y-m-d H:i:s", $d) . "<br>";
$d = strtotime("last Sunday");
echo "Дата " . date("Y-m-d H:i:s", $d);
?>
Попробуйте сами »
Совет: Функция strtotime() не идеальна, поэтому не забывайте проверять строки, которые вы в неё передаёте!
Дополнительные примеры работы с датами
В следующем примере выводятся даты следующих шести суббот:
Пример
<?php
$startdate = strtotime("Saturday");
$enddate = strtotime("+6 weeks", $startdate);
while ($startdate < $enddate) {
echo date("M d", $startdate) . "<br>";
$startdate = strtotime("+1 week", $startdate);
}
?>
Попробуйте сами »
Полный справочник по датам в PHP
Полный справочник всех функций даты можно найти на странице PHP Date Reference.
Справочник содержит краткое описание и примеры использования для каждой функции!