Функция cot_mktime в Cotonti
Описание функции. Функция cot_mktime создаёт UNIX-временную метку (timestamp) на основе переданных значений часа, минуты, секунды, месяца, дня и года. Если какой-либо из параметров не указан, используется текущее значение этого параметра на основании системного времени.
Давайте разберём функцию cot_mktime подробно!
/**
* Creates UNIX timestamp out of a date
*
* @param int $hour Hours
* @param int $minute Minutes
* @param int $second Seconds
* @param int $month Month
* @param int $date Day of the month
* @param int $year Year
* @return int
*/
function cot_mktime($hour = false, $minute = false, $second = false, $month = false, $date = false, $year = false)
{
if ($hour === false) $hour = date ('G');
if ($minute === false) $minute = date ('i');
if ($second === false) $second = date ('s');
if ($month === false) $month = date ('n');
if ($date === false) $date = date ('j');
if ($year === false) $year = date ('Y');
return mktime ((int) $hour, (int) $minute, (int) $second, (int) $month, (int) $date, (int) $year);
}
Параметры функции
$hour (int) — Час (0–23). Если не указан, используется текущий час.
$minute (int) — Минуты (0–59). Если не указаны, используются текущие минуты.
$second (int) — Секунды (0–59). Если не указаны, используются текущие секунды.
$month (int) — Номер месяца (1–12). Если не указан, используется текущий месяц.
$date (int) — День месяца (1–31). Если не указан, используется текущий день.
$year (int) — Год. Если не указан, используется текущий год.
Возвращаемое значение:
Функция возвращает результат стандартной PHP-функции mktime, представляющий собой временную метку UNIX.
Пошаговый разбор
Проверка и установка параметров по умолчанию:
Если $hour не передан (равен false), он устанавливается в текущее значение часов. Это достигается вызовом date('G'), который возвращает часы в формате 24-часового времени.
if ($hour === false) $hour = date('G');
Аналогичным образом для остальных параметров ($minute, $second, $month, $date, $year) используются текущие значения, если они не переданы. Это позволяет вызывать функцию с любым количеством параметров.
if ($minute === false) $minute = date('i');
if ($second === false) $second = date('s');
if ($month === false) $month = date('n');
if ($date === false) $date = date('j');
if ($year === false) $year = date('Y');
Преобразование параметров в целые числа:
После установки всех значений параметры приводятся к типу int. Это важно, чтобы избежать ошибок в работе функции mktime, которая требует числовых значений.
return mktime((int) $hour, (int) $minute, (int) $second, (int) $month, (int) $date, (int) $year);
Вызов стандартной функции mktime:
Функция mktime принимает установленные значения и возвращает временную метку UNIX, которая представляет время в секундах, прошедших с 1 января 1970 года.
Пример использования
Создание временной метки для 12:30:45, 15 февраля 2025 года:
$timestamp = cot_mktime(12, 30, 45, 2, 15, 2025);
echo $timestamp; // Например, 1739623845
Получение временной метки для текущего времени:
$currentTimestamp = cot_mktime();
echo $currentTimestamp; // Результат аналогичен time()
Задание только времени, остальные параметры — текущие:
$todayAtNoon = cot_mktime(12, 0, 0);
echo $todayAtNoon;
Рекомендации по применению
Удобство работы с датами:
Функция особенно полезна в ситуациях, когда нужно использовать текущую дату/время для отсутствующих параметров.
Совместимость с PHP:
Она служит удобной обёрткой над стандартной mktime, добавляя обработку отсутствующих параметров и улучшая читаемость кода.
Применение в Cotonti:
Используется в модулях и плагинах для расчёта времени в случае, если пользователь не указывает все детали вручную.
Может пригодиться в шаблонах, где нужна генерация метки времени для текущей или произвольной даты.
Функция компактна, проста и делает работу с временными метками удобной!
Комментарии (0)
Автор контента
Оффлайн
Administrator
Последняя авторизация: 05.07.2026 18:32
- Страница размещена: 22.01.2025 19:24
- Последнее обновление: 22.01.2025 19:24