# Time

# TC\ComponentLibrary\Util\Time

# Флаги

Флаг Значение Описание
ALL 0x3F Отображение всех единиц времени в результатах.
SECONDS 0x1 Отображение секунд в результатах.
MINUTES 0x2 Отображение минут в результатах.
HOURS 0x4 Отображение часов в результатах.
DAYS 0x8 Отображение дней в результатах.
MONTHS 0x10 Отображение месяцев в результатах.
YEARS 0x20 Отображение лет в результатах.
NO_ZEROS 0x800 Удаление нулей из результатов.
NO_FIRST_ZEROS 0x1000 Удаление незначимых нулей из результатов.

# Константы

Константа Значение
FORMAT_STR {years_phrased} {months_phrased} {days_phrased} {hours_phrased} {minutes_phrased} {seconds_phrased}

# timeToArray

Преобразование времени в секундах в года, месяцы, дни, часы, минуты и секунды.

public static function timeToArray(int $time, int $flags = self::ALL): array

# Параметры

Параметр Тип Значение по умолчанию Описание
time int Время в секундах для преобразования.
flags int self::ALL | self::NO_FIRST_ZEROS См. Флаги.

# Примеры

# Простое преобразование
print_r(
    \TC\ComponentLibrary\Util\Time::timeToArray(
        13 + 37 * 60 + 14 * 3600 + 30 * 86400 + 3 * 31536000
    )
);

/*
Array
(
    [years] => 3
    [months] => 1
    [days] => 0
    [hours] => 14
    [minutes] => 37
    [seconds] => 13
)
*/
# Удаление всех нулей из результатов
$time = \TC\ComponentLibrary\Util\Time::class;
print_r(
    $time::timeToArray(
        13 + 37 * 60 + 14 * 3600 + 30 * 86400,
        $time::ALL | $time::NO_ZEROS
    )
);

/*
Array
(
    [months] => 1
    [hours] => 14
    [minutes] => 37
    [seconds] => 13
)
*/
# Получение только определенных значений
$time = \TC\ComponentLibrary\Util\Time::class;
print_r(
    $time::timeToArray(
        13 + 37 * 60 + 14 * 3600 + 30 * 86400 + 3 * 31536000,
        $time::DAYS | $time::HOURS | $time::MINUTES
    )
);

/*
Array
(
    [days] => 1125
    [hours] => 14
    [minutes] => 37
)
*/

# timeToString

Преобразование времени в секундах в строку.

public static function timeToString(int $time, string $format = self::FORMAT_STR, int $flags = self::ALL | self::NO_FIRST_ZEROS): string

# Параметры

Параметр Тип Значение по умолчанию Описание
time int Время в секундах для преобразования.
format string self::FORMAT_STR Формат выходной строки.
Для замены доступны следующие переменные:
⋅ {seconds}, {minutes}, {hours}, {days}, {months}, {years} — значения, полученные из метода timeToArray
⋅ {seconds_phrased}, {minutes_phrased}, {hours_phrased}, {days_phrased}, {months_phrased}, {years_phrased} — фразы для этих значений
flags int self::ALL | self::NO_FIRST_ZEROS См. Флаги.

# Примеры

# Простое преобразование
print_r(
    \TC\ComponentLibrary\Util\Time::timeToString(
        13 + 37 * 60 + 14 * 3600 + 30 * 86400 + 3 * 31536000
    )
);

// 3 года 1 месяц 0 дней 14 часов 37 минут 13 секунд
# Удаление всех нулей из результатов
$time = \TC\ComponentLibrary\Util\Time::class;
print_r(
    $time::timeToString(
        13 + 37 * 60 + 14 * 3600 + 30 * 86400,
        $time::FORMAT_STR,
        $time::ALL | $time::NO_ZEROS
    )
);

// 1 месяц 14 часов 37 минут 13 секунд
# Получение только определенных значений
$time = \TC\ComponentLibrary\Util\Time::class;
print_r(
    $time::timeToString(
        13 + 37 * 60 + 14 * 3600 + 30 * 86400 + 3 * 31536000,
        $time::FORMAT_STR,
        $time::DAYS | $time::HOURS | $time::MINUTES
    )
);

// 1125 дней 14 часов 37 минут
# Пользовательский формат
$time = \TC\ComponentLibrary\Util\Time::class;
print_r(
    $time::timeToString(
        13 + 37 * 60 + 14 * 3600 + 30 * 86400 + 3 * 31536000,
        '{hours}:{minutes}:{seconds}',
        $time::HOURS | $time::MINUTES | $time::SECONDS
    )
);

// 27014:37:13

# Функции шаблонизатора

# tc_time_to_string

Преобразование времени в секундах в строку.

# Параметры

Параметр Тип Значение по умолчанию Описание
time int Время в секундах для преобразования.
format string $xf.tcTime.FORMAT_STR Формат выходной строки.
Для замены доступны следующие переменные:
⋅ {seconds}, {minutes}, {hours}, {days}, {months}, {years} — значения, полученные из метода timeToArray
⋅ {seconds_phrased}, {minutes_phrased}, {hours_phrased}, {days_phrased}, {months_phrased}, {years_phrased} — фразы для этих значений
flags int $xf.tcTime.ALL + $xf.tcTime.NO_FIRST_ZEROS См. Флаги.

# Примеры

# Простое преобразование
{{ tc_time_to_string(13 + 37 * 60 + 14 * 3600 + 30 * 86400 + 3 * 31536000) }}

<!-- 3 года 1 месяц 0 дней 14 часов 37 минут 13 секунд -->
# Удаление всех нулей из результатов
{{ tc_time_to_string(
    13 + 37 * 60 + 14 * 3600 + 30 * 86400,
    $xf.tcTime.FORMAT_STR,
    $xf.tcTime.ALL + $xf.tcTime.NO_ZEROS
) }}

<!-- 1 месяц 14 часов 37 минут 13 секунд -->
# Получение только определенных значений
{{ tc_time_to_string(
    13 + 37 * 60 + 14 * 3600 + 30 * 86400 + 3 * 31536000,
    $xf.tcTime.FORMAT_STR,
    $xf.tcTime.DAYS + $xf.tcTime.HOURS + $xf.tcTime.MINUTES
) }}

<!-- 1125 дней 14 часов 37 минут -->
# Пользовательский формат
{{ tc_time_to_string(
    13 + 37 * 60 + 14 * 3600 + 30 * 86400 + 3 * 31536000,
    '{hours}:{minutes}:{seconds}',
    $xf.tcTime.HOURS + $xf.tcTime.MINUTES + $xf.tcTime.SECONDS
) }}

<!-- 27014:37:13 -->