(PHP 4, PHP 5, PHP 7, PHP 8)
mktime — Получает Unix-метку времени для даты
$hour
,$minute
= null
,$second
= null
,$month
= null
,$day
= null
,$year
= null
Функция возвращает временну́ю метку Unix, которая соответствует заданным аргументам. Метка времени — целое число, которое содержит количество секунд между началом эпохи Unix, которая началась 1 января 1970 00:00:00 GMT, и датой и временем.
Функция присвоит необязательным параметрам, которые не указали или присвоили значение null
,
текущие значения, которые соответствуют локальным дате и времени.
Обратите внимание, что аргументы идут в странном порядке:
month
, day
,
year
, а не в более рациональном порядке
year
, month
,
day
.
Вызов функции mktime() без аргументов не поддерживается и вызовет исключение ArgumentCountError. Текущую метку времени возвращает функция time().
hour
Количество часов с начала дня, который определили параметрами
month
, day
и year
.
Отрицательные значения относятся к часам до полуночи относительно заданного
дня. Значения больше 23 определяют час, который соответствует
следующему дню или дням.
minute
Количество минут с начала часа, который установили параметром
hour
.
Отрицательные значения относятся к минутам предыдущего часа.
Значения больше 59 относятся к минутам, которые соответствуют следующему часу или часам.
second
Количество секунд с начала минуты, которую установили параметром
minute
. Отрицательные значения относятся к секундам
предыдущей минуты. Значения больше 59 относятся к секундам,
которые соответствуют следующей минуте или минутам.
month
Количество месяцев с начала текущего года. Значения от 1 до 12 относятся к обычным календарным месяцам заданного года Значения меньше 1 (включая отрицательные значения) относятся к месяцам предыдущего года в обратном порядке, то есть 0 — декабрь, -1 — ноябрь и т. д. Значения больше 12 относятся к месяцу следующего года или лет.
day
Количество дней с начала текущего месяца. Значения от 1 до 28, 29, 30 или 31 (в зависимости от месяца) относятся к обычным дням месяца. Значения меньше 1 (включая отрицательные значения) относятся к дням предыдущего месяца, поэтому 0 — последний день предыдущего месяца, -1 — предпоследний день предыдущего месяца и т. д. Значения, которые превышают количество дней в месяце, относятся ко дню следующего месяца или месяцев.
year
Номер года состоит из двух или четырёх цифр. Значения от 0 до 69 соответствуют 2000-2069 годам, а от 70 до 100 — 1970-2000 годам. В системах с арифметическим типом time_t в виде 32-разрядного целого числа со знаком, как самым распространённым способом представления времени, в допустимый диапазон параметра year входят значения примерно между 1901 и 2038 годами.
Функция mktime() возвращает временну́ю метку Unix по заданным аргументам
или false
, если метка времени не вписывается в целое число PHP.
Версия | Описание |
---|---|
8.0.0 |
Параметр hour теперь обязателен.
Чтобы получить временну́ю метку Unix, вызывают функцию time().
|
8.0.0 |
Параметры minute , second , month ,
day и year теперь принимают значение null.
|
Пример #1 Пример базовой работы функции mktime()
<?php
// Устанавливаем часовой пояс по умолчанию
date_default_timezone_set('UTC');
// Выводит: July 1, 2000 is on a Saturday
echo "July 1, 2000 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2000));
// Выводит что-то вроде: 2006-04-05T01:02:03+00:00
echo date('c', mktime(1, 2, 3, 4, 5, 2006));
?>
Пример #2 Пример использования функции mktime()
Функция mktime() полезна для выполнения арифметических операций и проверки дат, поскольку функция автоматически вычисляет правильные значения для входных аргументов, которые выходят за пределы допустимого диапазона. В следующем примере каждая строка кода создаёт строку «Jan-01-1998».
<?php
echo date("M-d-Y", mktime(0, 0, 0, 12, 32, 1997));
echo date("M-d-Y", mktime(0, 0, 0, 13, 1, 1997));
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 1998));
echo date("M-d-Y", mktime(0, 0, 0, 1, 1, 98));
?>
Пример #3 Последний день месяца
Последний день любого месяца получится выразить «нулевым» днём следующего месяца, но не -1 днём. Оба следующих примера создадут строку «Последний день февраля 2000 г.: 29».
<?php
$lastday = mktime(0, 0, 0, 3, 0, 2000);
echo 'Последний день февраля в 2000 году: ', date('d', $lastday);
$lastday = mktime(0, 0, 0, 4, -31, 2000);
echo 'Последний день февраля в 2000 году: ', date('d', $lastday);
?>