Функция 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:

Используется в модулях и плагинах для расчёта времени в случае, если пользователь не указывает все детали вручную.
Может пригодиться в шаблонах, где нужна генерация метки времени для текущей или произвольной даты.
Функция компактна, проста и делает работу с временными метками удобной!

3 минут чтения Administrator

Комментарии (0)

Комментарии отсутствуют
Добавление комментариев доступно только зарегистрированным пользователям

Автор контента

Administrator

Оффлайн

Administrator

Последняя авторизация: 05.07.2026 18:32

  • Страница размещена: 22.01.2025 19:24
  • Последнее обновление: 22.01.2025 19:24