# Time

# TeslaCloud.TIme

# Флаги

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

# Свойства

Константа Значение
FORMAT_STR

# timeToObject

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

timeToObject(time, flags = this.ALL | this.NO_FIRST_ZEROS)

# Параметры

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

# Возвращаемые значения

Возвращает объект TeslaCloud.DateInterval, который представляет разницу между двумя датами.

# Примеры

# Простое преобразование
console.log(
    TeslaCloud.Time.timeToObject(
        13 + 37 * 60 + 14 * 3600 + 30 * 86400 + 3 * 31536000
    )
);

/*
Object
{
    years: 3,
    months: 1,
    days: 0,
    hours: 14,
    minutes: 37,
    seconds: 13
}
*/
# Получение только определенных значений
const TCT = TeslaCloud.Time;
console.log(
    TCT.timeToObject(
        13 + 37 * 60 + 14 * 3600 + 30 * 86400 + 3 * 31536000,
        TCT.DAYS | TCT.HOURS | TCT.MINUTES
    )
);

/*
Object<TeslaCloud.DateInterval>
{
    years: 0,
    months: 0,
    days: 1125,
    hours: 14,
    minutes: 37,
    seconds: 0,
    invert: false
}
*/

# timeToString

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

timeToString(time, format = this.FORMAT_STR, flags = this.ALL | this.NO_FIRST_ZEROS)

# Параметры

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

# Примеры

# Простое преобразование
console.log(
    TeslaCloud.Time.timeToString(
        13 + 37 * 60 + 14 * 3600 + 30 * 86400 + 3 * 31536000
    )
);

// 3 года 1 месяц 0 дней 14 часов 37 минут 13 секунд
# Удаление всех нулей из результатов
const TCT = TeslaCloud.Time;
console.log(
    TCT.timeToString(
        13 + 37 * 60 + 14 * 3600 + 30 * 86400,
        TCT.FORMAT_STR,
        TCT.ALL | TCT.NO_ZEROS
    )
);

// 1 месяц 14 часов 37 минут 13 секунд
# Получение только определенных значений
const TCT = TeslaCloud.Time;
console.log(
    TCT.timeToString(
        13 + 37 * 60 + 14 * 3600 + 30 * 86400 + 3 * 31536000,
        TCT.FORMAT_STR,
        TCT.DAYS | TCT.HOURS | TCT.MINUTES
    )
);

// 1 125 дней 14 часов 37 минут
# Пользовательский формат
const TCT = TeslaCloud.Time;
console.log(
    TCT.timeToString(
        13 + 37 * 60 + 14 * 3600 + 30 * 86400 + 3 * 31536000,
        '{hours}:{minutes}:{seconds}',
        TCT.HOURS | TCT.MINUTES | TCT.SECONDS
    )
);

// 27014:37:13

# diff

Получение разницы между двумя датами.

diff(one, two, absolute = false)

# Параметры

Параметр Тип Значение по умолчанию Описание
one Date|int|string Дата и время для сравнения. См. параметры конструктора Date.
two Date|int|string Дата и время для сравнения. См. параметры конструктора Date.
absolute bool false Если true, интервал будет принудительно переведен в абсолютную величину.

# Возвращаемые значения

Возвращает объект TeslaCloud.DateInterval, который представляет разницу между двумя датами.

# Примеры

const TCT = TeslaCloud.Time;

console.log(
    TCT.diff(Date.now(), 'January 19, 2038 03:14:08 UTC')
);

/*
Object<TeslaCloud.DateInterval>
{
    years: 13,
    months: 11,
    days: 8,
    hours: 4,
    minutes: 14,
    seconds: 2,
    invert: false
}
*/

console.log(
    TCT.diff(Date.now(), 'October 7, 2005')
);

/*
Object<TeslaCloud.DateInterval>
{
    years: 18,
    months: 4,
    days: 4,
    hours: 3,
    minutes: 3,
    seconds: 49,
    invert: true
}
*/

# TeslaCloud.DateInterval

Представляет интервалы дат.

# Свойства

Свойство Описание
years Количество лет.
months Количество месяцев.
days Количество дней.
hours Количество часов.
minutes Количество минут.
seconds Количество секунд.
invert Если true, интервал представляет собой отрицательный период времени, в противном случае — false.

# isZero

Возвращает true, если все значения интервала равны нулю, в противном случае — false.

# TeslaCloud.Countdown (tc-countdown)

# Параметры

Параметр Значение по умолчанию Описание
to Время для отсчета.
format TeslaCloud.Time.FORMAT_STR Формат отображения интервала.
formatNegative Формат отображения отрицательного интервала.
allowNegative true Если false, отсчет будет остановлен, когда значение интервала будет равно нулю. Вместо интервала будет отображено значение параметра endText.
Если true, отсчет будет продолжен при отрицательном значении интервала. Для отображения интервала будет использоваться формат из параметра formatNegative.
endText Текст, который будет отображен, когда значение интервала будет равно нулю. Если не указано, будет использован внутренний HTML элемента, для которого был инициализирован обработчик.

# Примеры

<xf:js src="TC/ComponentLibrary/time.js" addon="TC/ComponentLibrary" min="1" />

<dl class="pairs pairs--spaced">
    <dt>Countdown to January 19, 2038 03:14:08 UTC</dt>
    <dd>
        <span data-xf-init="tc-countdown"
              data-to="January 19, 2038 03:14:08 UTC">Initialization...</span>
    </dd>
</dl>

<dl class="pairs pairs--spaced">
    <dt>Countdown to October 7, 2005</dt>
    <dd>
        <span data-xf-init="tc-countdown"
              data-to="10.07.2005">Initialization...</span>
    </dd>
</dl>

<dl class="pairs pairs--spaced">
    <dt>Countdown to January 19, 2038 03:14:08 UTC with custom format</dt>
    <dd>
        <span data-xf-init="tc-countdown"
              data-to="January 19, 2038 03:14:08 UTC"
              data-format="The Epochalipse will come in {$xf.tcTime.FORMAT_STR}"
              data-format-negative="The Epochalpse came {{ ERROR }}">Initialization...</span>
    </dd>
</dl>

<dl class="pairs pairs--spaced">
    <dt>Countdown to January 1, 2025 without negative interval</dt>
    <dd>
        <span data-xf-init="tc-countdown"
              data-to="January 1, 2025"
              data-allow-negative="false"
              data-end-text="The countdown is over">Initialization...</span>
    </dd>
</dl>