OzTime

core/core. OzTime

Неизменяемый объект даты и времени на основе UTC timestamp с дополнительными метаданными о часовом поясе и локали.

Класс поддерживает как создание экземпляров через конструктор, так и через статические фабричные методы.

Constructor

new OzTime(timestamp, timezoneopt, localeopt)

Description:
  • Создаёт новый экземпляр OzTime.

Source:
Examples
import { OzTime } from '@alexstukovnikov/oz-time';

const time = OzTime.fromISO('2024-05-25T12:00:00Z', 'UTC', 'ru-RU');
console.log(time.toISOString()); // ожидаемый результат: 2024-05-25T12:00:00.000Z
import { OzTime } from '@alexstukovnikov/oz-time';

const result = OzTime
  .fromISO('2024-05-25T12:00:00Z', 'UTC', 'ru-RU')
  .add(1, 'day')
  .add(2, 'hour')
  .subtract(30, 'minute')
  .setTimezone('Europe/Moscow')
  .format('DD.MM.YYYY HH:mm:ss');

console.log(result);
Parameters:
Name Type Attributes Default Description
timestamp number

Unix timestamp в миллисекундах.

timezone TimezoneString <optional>
'UTC'

Часовой пояс в формате IANA.

locale LocaleString <optional>
'en-US'

Локаль, используемая для форматирования.

Throws:

Выбрасывается, если timestamp, timezone или locale некорректны.

Type
TypeError

Methods

add(amount, unit) → {OzTime}

Description:
  • Возвращает новый экземпляр OzTime, у которого timestamp увеличен на указанное количество единиц времени.

    Исходный экземпляр не изменяется.

Source:
Example
import { OzTime } from '@alexstukovnikov/oz-time';

const nextDay = OzTime
  .fromISO('2024-05-25T12:00:00Z')
  .add(1, 'day');

console.log(nextDay.toISOString()); // ожидаемый результат: 2024-05-26T12:00:00.000Z
Parameters:
Name Type Description
amount number

Количество единиц времени.

unit TimeUnit | string

Единица времени.

Returns:

Новый экземпляр OzTime с timestamp, сдвинутым вперёд.

Type
OzTime

diff(other, unitopt) → {number}

Description:
  • Вычисляет разницу между текущим значением и другим временем.

Source:
Example
import { OzTime } from '@alexstukovnikov/oz-time';

const start = OzTime.fromISO('2024-05-25T12:00:00Z');
const end = start.add(2, 'hour');
console.log(end.diff(start, 'hour')); // ожидаемый результат: 2
Parameters:
Name Type Attributes Default Description
other OzTime

Второе значение для сравнения.

unit TimeUnit | string <optional>
'millisecond'

Единица измерения разницы.

Returns:

Разница между двумя значениями.

Type
number

format(template, localeopt) → {string}

Description:
  • Форматирует текущее значение времени по заданному шаблону.

Source:
Example
import { OzTime } from '@alexstukovnikov/oz-time';

const value = OzTime.fromISO('2024-05-25T12:00:00Z', 'UTC', 'ru-RU');
console.log(value.format('DD.MM.YYYY HH:mm')); // ожидаемый результат: 25.05.2024 12:00
Parameters:
Name Type Attributes Description
template string

Строка шаблона форматирования.

locale LocaleString <optional>

Локаль, которая временно переопределяет локаль экземпляра.

Returns:

Отформатированная строка.

Type
string

getLocale() → {LocaleString}

Description:
  • Возвращает текущую локаль экземпляра.

Source:
Example
import { OzTime } from '@alexstukovnikov/oz-time';

const time = OzTime.fromISO('2024-05-25T12:00:00Z', 'UTC', 'ru-RU');
console.log(time.getLocale()); // ожидаемый результат: ru-RU
Returns:

Строка локали.

Type
LocaleString

getTimestamp() → {number}

Description:
  • Возвращает внутренний Unix timestamp экземпляра в миллисекундах.

Source:
Example
import { OzTime } from '@alexstukovnikov/oz-time';

const time = OzTime.fromISO('2024-05-25T12:00:00Z', 'UTC', 'ru-RU');
console.log(time.getTimestamp()); // ожидаемый результат: 1716638400000
Returns:

Unix timestamp в миллисекундах.

Type
number

getTimezone() → {TimezoneString}

Description:
  • Возвращает текущий часовой пояс экземпляра.

Source:
Example
import { OzTime } from '@alexstukovnikov/oz-time';

const time = OzTime.fromISO('2024-05-25T12:00:00Z', 'Europe/Moscow', 'ru-RU');
console.log(time.getTimezone()); // ожидаемый результат: Europe/Moscow
Returns:

Идентификатор часового пояса.

Type
TimezoneString

getTimezoneOffset() → {number}

Description:
  • Возвращает смещение текущего часового пояса относительно UTC в минутах.

Source:
Example
import { OzTime } from '@alexstukovnikov/oz-time';

const time = OzTime.fromISO('2024-05-25T12:00:00Z', 'Europe/Moscow', 'ru-RU');
console.log(time.getTimezoneOffset()); // ожидаемый результат: 180
Returns:

Смещение в минутах.

Type
number

isAfter(other, unitopt) → {boolean}

Description:
  • Проверяет, находится ли текущее значение позже другого времени.

Source:
Example
import { OzTime } from '@alexstukovnikov/oz-time';

const a = OzTime.fromISO('2024-05-26T12:00:00Z');
const b = OzTime.fromISO('2024-05-25T12:00:00Z');
console.log(a.isAfter(b)); // ожидаемый результат: true
Parameters:
Name Type Attributes Default Description
other OzTime

Второе значение для сравнения.

unit TimeUnit | string <optional>
'millisecond'

Точность сравнения.

Returns:

true, если текущее значение больше.

Type
boolean

isBefore(other, unitopt) → {boolean}

Description:
  • Проверяет, находится ли текущее значение раньше другого времени.

Source:
Example
import { OzTime } from '@alexstukovnikov/oz-time';

const a = OzTime.fromISO('2024-05-25T12:00:00Z');
const b = a.add(1, 'day');
console.log(a.isBefore(b)); // ожидаемый результат: true
Parameters:
Name Type Attributes Default Description
other OzTime

Второе значение для сравнения.

unit TimeUnit | string <optional>
'millisecond'

Точность сравнения.

Returns:

true, если текущее значение меньше.

Type
boolean

isBetween(start, end, unitopt, inclusivityopt) → {boolean}

Description:
  • Проверяет, попадает ли текущее значение в диапазон между двумя датами.

Source:
Example
import { OzTime } from '@alexstukovnikov/oz-time';

const current = OzTime.fromISO('2024-05-25T12:00:00Z');
const start = current.subtract(1, 'day');
const end = current.add(1, 'day');
console.log(current.isBetween(start, end)); // ожидаемый результат: true
Parameters:
Name Type Attributes Default Description
start OzTime

Левая граница диапазона.

end OzTime

Правая граница диапазона.

unit TimeUnit | string <optional>
'millisecond'

Точность сравнения.

inclusivity Inclusivity <optional>
'[]'

Формат включённости границ.

Returns:

true, если значение находится внутри диапазона.

Type
boolean

isSame(other, unitopt) → {boolean}

Description:
  • Проверяет, совпадает ли текущее значение с другим временем на заданной точности.

Source:
Example
import { OzTime } from '@alexstukovnikov/oz-time';

const a = OzTime.fromISO('2024-05-25T12:00:00.100Z');
const b = OzTime.fromISO('2024-05-25T12:00:00.900Z');
console.log(a.isSame(b, 'second')); // ожидаемый результат: true
Parameters:
Name Type Attributes Default Description
other OzTime

Второе значение для сравнения.

unit TimeUnit | string <optional>
'millisecond'

Точность сравнения.

Returns:

true, если значения совпадают.

Type
boolean

setTimezone(timezone) → {OzTime}

Description:
  • Возвращает новый экземпляр с тем же timestamp, но другим часовым поясом.

Source:
Example
import { OzTime } from '@alexstukovnikov/oz-time';

const moscowTime = OzTime
  .fromISO('2024-05-25T12:00:00Z', 'UTC', 'ru-RU')
  .setTimezone('Europe/Moscow');

console.log(moscowTime.getTimezone()); // ожидаемый результат: Europe/Moscow
Parameters:
Name Type Description
timezone TimezoneString

Новый часовой пояс.

Returns:

Новый экземпляр с обновлённым часовым поясом.

Type
OzTime

subtract(amount, unit) → {OzTime}

Description:
  • Возвращает новый экземпляр OzTime, у которого timestamp уменьшен на указанное количество единиц времени.

    Исходный экземпляр не изменяется.

Source:
Example
import { OzTime } from '@alexstukovnikov/oz-time';

const prevHour = OzTime
  .fromISO('2024-05-25T12:00:00Z')
  .subtract(1, 'hour');

console.log(prevHour.toISOString()); // ожидаемый результат: 2024-05-25T11:00:00.000Z
Parameters:
Name Type Description
amount number

Количество единиц времени.

unit TimeUnit | string

Единица времени.

Returns:

Новый экземпляр OzTime с timestamp, сдвинутым назад.

Type
OzTime

toISOString() → {string}

Description:
  • Преобразует текущее значение времени в строку формата ISO 8601.

Source:
Example
import { OzTime } from '@alexstukovnikov/oz-time';

const time = OzTime.fromComponents(2024, 5, 25, 12, 0, 0, 0, 'UTC', 'ru-RU');
console.log(time.toISOString()); // ожидаемый результат: 2024-05-25T12:00:00.000Z
Returns:

Строковое представление даты и времени в формате ISO 8601.

Type
string

toTimestamp() → {number}

Description:
  • Возвращает внутренний Unix timestamp экземпляра в миллисекундах.

Source:
Example
import { OzTime } from '@alexstukovnikov/oz-time';

const time = OzTime.fromISO('2024-05-25T12:00:00Z', 'UTC', 'ru-RU');
console.log(time.toTimestamp()); // ожидаемый результат: 1716638400000
Returns:

Unix timestamp в миллисекундах.

Type
number

(static) duration(amount, unit) → {Duration}

Description:
  • Создаёт новую длительность из фиксированной единицы времени.

Source:
Example
import { OzTime } from '@alexstukovnikov/oz-time';

const value = OzTime.duration(2, 'hour');
console.log(value.asMinutes()); // ожидаемый результат: 120
Parameters:
Name Type Description
amount number

Количество единиц времени.

unit TimeUnit | string

Единица времени.

Returns:

Экземпляр длительности.

Type
Duration

(static) fromComponents(year, month, day, houropt, minuteopt, secondopt, msopt, timezoneopt, localeopt) → {OzTime}

Description:
  • Создаёт экземпляр OzTime из отдельных компонентов даты и времени.

Source:
Example
import { OzTime } from '@alexstukovnikov/oz-time';

const time = OzTime.fromComponents(2024, 5, 25, 12, 0, 0, 0, 'UTC', 'ru-RU');
console.log(time.toISOString()); // ожидаемый результат: 2024-05-25T12:00:00.000Z
Parameters:
Name Type Attributes Default Description
year number

Год.

month number

Месяц от 1 до 12.

day number

День месяца.

hour number <optional>
0

Час от 0 до 23.

minute number <optional>
0

Минута от 0 до 59.

second number <optional>
0

Секунда от 0 до 59.

ms number <optional>
0

Миллисекунда от 0 до 999.

timezone TimezoneString <optional>
'UTC'

Часовой пояс в формате IANA.

locale LocaleString <optional>
'en-US'

Локаль форматирования.

Returns:

Экземпляр времени.

Type
OzTime

(static) fromDate(date, timezoneopt, localeopt) → {OzTime}

Description:
  • Создаёт экземпляр OzTime из объекта Date.

Source:
Example
import { OzTime } from '@alexstukovnikov/oz-time';

const time = OzTime.fromDate(new Date('2024-05-25T12:00:00Z'), 'UTC', 'ru-RU');
console.log(time.toTimestamp()); // ожидаемый результат: 1716638400000
Parameters:
Name Type Attributes Default Description
date Date

Нативный объект Date.

timezone TimezoneString <optional>
'UTC'

Часовой пояс в формате IANA.

locale LocaleString <optional>
'en-US'

Локаль форматирования.

Returns:

Экземпляр времени.

Type
OzTime

(static) fromISO(isoString, timezoneopt, localeopt) → {OzTime}

Description:
  • Создаёт экземпляр OzTime из ISO-строки.

Source:
Example
import { OzTime } from '@alexstukovnikov/oz-time';

const time = OzTime.fromISO('2024-05-25T12:00:00Z', 'UTC', 'ru-RU');
console.log(time.format('DD.MM.YYYY HH:mm')); // ожидаемый результат: 25.05.2024 12:00
Parameters:
Name Type Attributes Default Description
isoString string

Строка даты и времени в формате ISO 8601.

timezone TimezoneString <optional>
'UTC'

Часовой пояс в формате IANA.

locale LocaleString <optional>
'en-US'

Локаль форматирования.

Returns:

Экземпляр времени.

Type
OzTime

(static) fromTimestamp(timestamp, timezoneopt, localeopt) → {OzTime}

Description:
  • Создаёт экземпляр OzTime из Unix timestamp в миллисекундах.

Source:
Example
import { OzTime } from '@alexstukovnikov/oz-time';

const time = OzTime.fromTimestamp(1716638400000, 'UTC', 'ru-RU');
console.log(time.toISOString()); // ожидаемый результат: 2024-05-25T12:00:00.000Z
Parameters:
Name Type Attributes Default Description
timestamp number

Unix timestamp в миллисекундах.

timezone TimezoneString <optional>
'UTC'

Часовой пояс в формате IANA.

locale LocaleString <optional>
'en-US'

Локаль форматирования.

Returns:

Экземпляр времени.

Type
OzTime

(static) interval(start, end) → {Interval}

Description:
  • Создаёт новый интервал между двумя значениями OzTime.

Source:
Example
import { OzTime } from '@alexstukovnikov/oz-time';

const start = OzTime.fromISO('2024-05-25T10:00:00Z');
const end = OzTime.fromISO('2024-05-25T12:00:00Z');
const range = OzTime.interval(start, end);

console.log(range.duration('hour')); // ожидаемый результат: 2
Parameters:
Name Type Description
start OzTime

Начало интервала.

end OzTime

Конец интервала.

Returns:

Экземпляр интервала.

Type
Interval

(static) now(timezoneopt, localeopt) → {OzTime}

Description:
  • Создаёт экземпляр OzTime для текущего момента времени.

Source:
Example
import { OzTime } from '@alexstukovnikov/oz-time';

const current = OzTime.now('Europe/Moscow', 'ru-RU');
console.log(current.getTimezone()); // ожидаемый результат: Europe/Moscow
Parameters:
Name Type Attributes Default Description
timezone TimezoneString <optional>
'UTC'

Часовой пояс в формате IANA.

locale LocaleString <optional>
'en-US'

Локаль форматирования.

Returns:

Экземпляр с текущим временем.

Type
OzTime