-
- add
- diff
- addSeconds
- addMinutes
- addHours
- addDays
- addMonth
- addYears
- getMonthString
- getWeekDaysString
- getMonthDayCount
- update
- setTime
- setDate
- setTz
- startDay
- endDay
- equals
- equalsDate
- equalsTime
- isBetween
- secondsBetween
- minutesBetween
- hoursBetween
- daysBetween
- weeksBetween
- monthBetween
- yearsBetween
- split
- formatLocale
- format
- toISO
- convertToDate
- toString
- valueOf
В основе всех вычислений объектов Time используются два ключевых поля - timestamp и ticks
- timestamp - это классическая метка времени UNIX где за 0 принимается дата равная 01.01.1970гг
- ticks - метка времени где за 0 принимается дата равная 01.01.0001гг
Все конвертации между двумя значениями проводятся внутри класса Time без необходимости делать это вручную, но если такая необходимость возникнет вы можете воспользоваться функциями для конвертации меток между собой
Для создания объекта Time можно использовать конструктор либо статичную функцию create
let time1 = new Time(); // Объект Time с текущим временем
let time2 = new Time(123009328409); // Объект Time с из Unix метки времени
let time3 = Time.create(); // Объект Time c временем равным началу эпохи Unix (т.е 00:00:00ч 01.01.1970г)
let time4 = Time.create(2022,10,11); // Объект Time c датой 11.10.2022г 00:00:00ч
При необходимости объект времени можно создать (ковертировать в Time) используя стандартные объекты Date и строки времени
let date = new Date()
let time1 = new Time(date); // Объект Time из Date
let time2 = new Time('2005-08-09T18:31:42+03'); // Объект Time из строки в формате ISO
Все доступные форматы строк ISO находятся в Time.ISO_FORMATS
-
Time.MAX_TICKS_VALUE (Number)(getter)- Максимально возможное значение ticks в Time объектах
-
Time.MIN_TICKS_VALUE (Number)(getter) - Минимально возможное значение ticks в Time объектах
-
Time.MAX_TIMESTAMP_VALUE (Number)(getter) - Минимально возможное значение timestamp в Time объектах
-
Time.MIN_TIMESTAMP_VALUE (Number)(getter) - Минимально возможное значение timestamp в Time объектах
-
Time.TIMEZONE (Object)(getter) - Все поддерживаемые временные зоны JS, каждый объект временной зоны включает в себя массив names с именами локалей для текущей временной зоны и числовое значение value. Любую из поддерживаемых зон можно получить через свойство plus или minus с определенным значением (исключением является zero). На данный момент поддерживаются следующие свойства:
[
'minus_11', 'minus_10', 'minus_10_30',
'minus_9', 'minus_8', 'minus_7',
'minus_6', 'minus_5', 'minus_4',
'minus_4_-30', 'minus_3', 'minus_2',
'minus_1', 'zero', 'plus_1',
'plus_2', 'plus_3', 'plus_4_30',
'plus_4', 'plus_5_30', 'plus_5',
'plus_6_30', 'plus_6_45', 'plus_6',
'plus_7_30', 'plus_7', 'plus_8',
'plus_9_45', 'plus_9', 'plus_10_30',
'plus_10', 'plus_11_30', 'plus_11',
'plus_12', 'plus_13', 'plus_14_45',
'plus_14'
]
Пример временной зоны plus_11:
console.log(Time.TIMEZONE.plus_11)
//Результат вывода:
{
names: [
'Antarctica/Casey',
'Antarctica/Macquarie',
'Asia/Magadan',
'Asia/Sakhalin',
'Asia/Srednekolymsk',
'Australia/Currie',
'Australia/Hobart',
'Australia/Lord_Howe',
'Australia/Melbourne',
'Australia/Sydney',
'Pacific/Bougainville',
'Pacific/Efate',
'Pacific/Guadalcanal',
'Pacific/Kosrae',
'Pacific/Noumea',
'Pacific/Ponape'
],
value: 11
}
-
Time.DEFAULT_TZ (Object)(getter) - Временная зона установленная по умолчанию (начальное значение соответствует - Time.TIMEZONE.zero)
-
Time.ISO_FORMATS (Object)(getter) - Объект с поддерживаемыми форматами ISO. Каждый шаблон может использоваться с функцией функцией format
Включает в себя следующие свойства и значения:
{
TIME: '@{Hm}',
TIMECLN: '@{H:m}',
TIMESEC: '@{HmS}',
TIMESECCLN: '@{H:m:S}',
TIMESECTH: '@{HmSTh}',
TIMESECCLNTH: '@{H:m:STh}',
TIMESECTZ: '@{HmSThTp}',
TIMESECCLNTZ: '@{H:m:SThTp}',
DATEYMCLN: '@{Y-M}',
DATEYM: '@{YM}',
DATEYMDCLN: '@{Y-M-D}',
DATEYMD: '@{YMD}',
DATETIMEYMD: '@{YMDHmS}',
DATETIMECLN: '@{Y-M-DTH:m:S}',
DATETIMETH: '@{YMDTHmSTh}',
DATETIMECLNTH: '@{Y-M-DTH:m:STh}',
DATETIMETZ: '@{YMDTHmSThTp}',
DATETIMECLNTZCLN: '@{Y-M-DTH:m:STz}',
DATETIMEMSCLN: '@{Y-M-DTH:m:S.s}',
DATETIMEMSCLNTH: '@{Y-M-DTH:m:S.sTh}',
DATETIMEMSCLNTZ: '@{Y-M-DTH:m:S.sThTp}',
DATETIMEMSCLNTZCLN: '@{Y-M-DTH:m:S.sTz}'
}
Функция для проверки года на високосность
- year (Number) - год от 1 до 9999
(Boolean) Логическое значение указывающее является ли год високосным
Time.isLeapYear(2022); // false
Time.isLeapYear(2024); // true
Функция установки текущей временной зоны по умолчанию, для установки корректной временной зоны используйте коллекцию Time.TIMEZONE
- tz (Number) - число соответствующее сдвигу в часах
(Boolean) Логическое значение указывающее удалось ли установить часовой пояс
Time.setDefaultTz(Time.TIMEZONE.plus_3) // Устанавливает временное смещение по умолчанию +03:00
Функция для получения количества дней указанного месяца
- month (Number) - Месяц от 1 до 12
- isLeap (Boolean) - Значение указывающее является ли год високосным
(Number) Число дней в указанном месяце
Time.getMonthDayCount(2,Time.isLeapYear(2008)) // Вернет 29
Time.getMonthDayCount(2,false) // Вернет 28
Функция для получения наименования указанного месяца, либо всех месяцев в зависимости от параметра month
- month (Number)(не обязательный) - Месяц от 1 до 12, если не указывать или указать -1 вернет массив наименований всех месяцев
- locale (String)(не обязательный) - Параметр локализации (по умолчанию - ru)
(String | Array<String>) Строка или массив строк с наименованием месяцев
Time.getMonthString() // Вернет ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь']
Time.getMonthString(3) // Вернет 'Март'
Функция для получения наименования дня недели, либо всех дней в зависимости от параметра day
- day (Number)(не обязательный) - День недели от 1 до 7, если не указывать или указать -1 вернет массив наименований всех дней недели
- locale (String)(не обязательный) - Параметр локализации (по умолчанию - ru)
(String | Array<String>) Строка или массив строк с наименованием дней недели
Time.getDayInWeekString() // Вернет ['Понедельник','Вторник','Среда','Четверг','Пятница','Суббота','Восресенье']
Time.getDayInWeekString(3) // Вернет 'Среда'
Функция для получения случайной временной метки в пределах от min до max (включительно). По умолчанию значение min соответствует минимально возможной временной метки (01.01.0001) а max наибольшей (31.12.9999) соответственно
- min (Number | Time | Date | String | Object)(не обязательный) - Минимальное значение времени, метки времени в мс.,объекта Time или объекта с настройками
- max (Number | Time | Date | String | Object)(не обязательный) - Максимальное значение времени, метки времени в мс.,объекта Time или объекта с настройками
- tz (Number | String | Object)(не обязательный) - Временная зона
(Time) Новый объект Time
let t = Time.random()
console.log(t.toISO()) // Вывод: 4018-12-03T00:21:47.715+0000
Функция для получения кол-ва миллисекунд прошедших с 1 января 1 года н.э. из метки времени UNIX
- timestamp (Number) - Временная метка Unix
(Number) Кол-во миллисекунд
Time.timestampToTicks(100000) // Вернет 62135596900000
Функция для получения метки времени UNIX из кол-ва миллисекунд прошедших с 1 января 1 года н.э.
- ticks (Number) - Кол-во миллисекунд с 1 января 1 г. н.э.
(Number) Временная метка UNIX в мс
Time.timestampToTicks(62135596900000) // Вернет 100000
Функция для нахождения кол-ва високосных дней(лет) в указанном промежутке лет
- yearStart (Number) - Начальный год (от 0 до 9999)
- yearEnd (Number) - Конечный год (от 0 до 9999)
(Number) Кол-во високосных дней в промежутке между yearStart и yearEnd не включая yearEnd если он високосный
Time.leapYearsBeetwen(2000,2022) // Вернет 5
Time.leapYearsBeetwen(2000,2020) // Вернет 4
Функция для получения ticks из временной строки в формате ISO
- str (String) - Строка времени в формате ISO
(Number) ticks метка времени
console.log(Time.parseISO('2024-02-18T15:21:56.491+0000')) //Вывод: 63843866516491
-
timestamp (Number)(getter) - Временная метка Unix в мс
-
ticks (Number)(getter) - Кол-во миллисекунд прошедших с 1 января 1года н.э.
-
millis (Number)(getter) - Миллисекунды от 0 до 999
-
seconds (Number)(getter) - Секунды от 0 до 59
-
minutes (Number)(getter) - Минуты от 0 до 59
-
hours (Number)(getter) - Часы от 0 до 23
-
decimalSeconds (Number)(getter) - Секунды с дробной частью
-
decimalMinutes (Number)(getter) - Минуты с дробной частью
-
decimalHours (Number)(getter) - Часы с дробной частью
-
day (Number)(getter) - день месяца
-
wDay (Number)(getter) - день недели от 1 до 7
-
yDay (Number)(getter) - день года от 1 до 365(366)
-
month (Number)(getter) - Номер месяца от 1 до 12
-
year (Number)(getter) - Текущий год
-
isLeap (Boolean)(getter) - Логическое значение указывающее является ли текущий год високосным
-
tz (Number)(getter) - Часовой пояс в числовом формате
-
fullTz (Object)(getter) - Часовой пояс в виде объекта временной зоны
Функция для сложения дат, при использовании данной функции можно получить результат отличный от ожидаемого, т.к складываются временные метки а не сама дата.
- timeObj (Number | Time | Date | String | Object) - Объект Time, Date, строка времени, объект содержащий информацию о дате или метка UNIX для сложения с текущей датой
(Time) возвращает текущий объект Time с обновленными значениями (можно использовать цепочку вызовов)
let time = Time.create(2000,1,1) // Время соответствующее 01.01.2000 00:00:00
let time2 = new Time(0) // Время соответствующее 01.01.1970 00:00:00
time.add(time2)
console.log(time.toISO()) // Вывод: 3968-12-31T00:00:00.000+0000
Функция для вычитания дат
- timeObj (Number | Time | Date | String) - (Number | Time | Date | String | Object) - Объект Time,Date, строка времени, объект содержащий информацию о дате или метка UNIX для вычитания из текущей даты
(Time) возвращает текущий объект Time с обновленными значениями (можно использовать цепочку вызовов)
let time = new Time(0) // Время соответствующее 01.01.1970 00:00:00
time.diff(0) // Метка Unix равная 0 это так же 1970г
console.log(time.toISO()) // Вывод: 0001-01-01T00:00:00.000+0000
Функция для сложения и вычитания секунд (для вычитания используйте отрицательные значения)
- seconds (Number) - Кол-во секунд для прибавления/вычитания
(Time) возвращает текущий объект Time с обновленными значениями (можно использовать цепочку вызовов)
let time = new Time(0) // Время соответствующее 01.01.1970 00:00:00
time.addSeconds(3600) // 3600сек = 1час
console.log(time.toISO()) // Вывод: 1970-01-01T01:00:00.000+0000
Функция для сложения и вычитания минут (для вычитания используйте отрицательные значения)
- minutes (Number) - Кол-во минут для прибавления/вычитания
(Time) возвращает текущий объект Time с обновленными значениями (можно использовать цепочку вызовов)
let time = new Time(0) // Время соответствующее 01.01.1970 00:00:00
time.addMinutes(60)
console.log(time.toISO()) // Вывод: 1970-01-01T01:00:00.000+0000
Функция для сложения и вычитания часов (для вычитания используйте отрицательные значения)
- hours (Number) - Кол-во часов для прибавления/вычитания
(Time) возвращает текущий объект Time с обновленными значениями (можно использовать цепочку вызовов)
let time = new Time(0) // Время соответствующее 01.01.1970 00:00:00
time.addHours(1)
console.log(time.toISO()) // Вывод: 1970-01-01T01:00:00.000+0000
Функция для сложения и вычитания дней (для вычитания используйте отрицательные значения)
- days (Number) - Кол-во дней для прибавления/вычитания
(Time) возвращает текущий объект Time с обновленными значениями (можно использовать цепочку вызовов)
let time = new Time(0) // Время соответствующее 01.01.1970 00:00:00
time.addDay(1)
console.log(time.toISO()) // Вывод: 1970-01-02T00:00:00.000+0000
Функция для сложения и вычитания месяцев (для вычитания используйте отрицательные значения)
- months (Number) - Кол-во месяцев для прибавления/вычитания
(Time) возвращает текущий объект Time с обновленными значениями (можно использовать цепочку вызовов)
let time = new Time(0) // Время соответствующее 01.01.1970 00:00:00
time.addMonth(12)
console.log(time.toISO()) // Вывод: 1971-01-01T00:00:00.000+0000
Функция для сложения и вычитания лет (для вычитания используйте отрицательные значения)
- years (Number) - Кол-во лет для прибавления/вычитания
(Time) возвращает текущий объект Time с обновленными значениями (можно использовать цепочку вызовов)
let time = new Time(0) // Время соответствующее 01.01.1970 00:00:00
time.addYear(12)
console.log(time.toISO()) // Вывод: 1982-01-01T00:00:00.000+0000
Функция для получения наименования текущего месяца
- locale (String)(не обязательный) - Параметр локализации (по умолчанию - ru)
(String) Строка с наименованием месяца
let time = new Time(0) // Время соответствующее 01.01.1970 00:00:00
console.log(time.getMonthString()) // Вывод: Январь
Функция для получения наименования текущего дня недели
- locale (String)(не обязательный) - Параметр локализации (по умолчанию - ru)
(String) Строка с наименованием дня недели
let time = new Time(0) // Время соответствующее 01.01.1970 00:00:00
console.log(time.getWeekDaysString()) // Вывод: Четверг
Функция для получения кол-ва дней в месяце текущего объекта даты
(Number) Кол-во дней в месяце
let time = new Time(0) // Время соответствующее 01.01.1970 00:00:00
console.log(time.getMonthDayCount()) // Вывод: 31
Функция для обновления объекта до текущего времени
(Time) возвращает текущий объект Time с обновленными значениями (можно использовать цепочку вызовов)
let time = new Time(0) // Время соответствующее 01.01.1970 00:00:00
time.update() // Время соответствующее текущему
Функция установки времени для текущего объекта Time. Параметры можно устанавливать выборочно, у всех значение по умолчанию null
- hours (Number)(не обязательный) - Часы от 0 до 23
- minutes (Number)(не обязательный) - Минуты от 0 до 59
- seconds (Number)(не обязательный) - Секунды от 0 до 59
- milliseconds (Number)(не обязательный) - Миллисекунды от 0 до 999
(Time) возвращает текущий объект Time с обновленными значениями (можно использовать цепочку вызовов)
let time = new Time(0) // Время соответствующее 01.01.1970 00:00:00
time.setTime(22,10,15,999) // Устанавливаем время 22:10:15.999
console.log(time.toISO()) // Вывод: 1970-01-01T22:10:15.999+0000
Функция установки даты для текущего объекта Time. Параметры можно устанавливать выборочно, у всех значение по умолчанию null
Если установить не существующую дату (например 30 февраля), то день останется прежним если он корректно подходит к заданному месяцу, в противном случае день будет установлен на 1 число месяца
- day (Number)(не обязательный) - День в зависимости от месяца от 1 до 31
- month (Number)(не обязательный) - Месяц от 1 до 12
- year (Number)(не обязательный) - Год в диапазоне от 1 до 9999
(Time) возвращает текущий объект Time с обновленными значениями (можно использовать цепочку вызовов)
let time = new Time(0) // Время соответствующее 01.01.1970 00:00:00
time.setDate(10,5,2022) // Устанавливаем время 22:10:15.999
console.log(time.toISO()) // Вывод: 2022-05-10T00:00:00.000+0000
time.setDate(30,2,2022) // Ставим не существующую дату
console.log(time.toISO()) // Вывод: 2022-02-10T00:00:00.000+0000 | 10 число, которое было установлено ранее, корректно для февраля
Функция установки текущей временной зоны по умолчанию, для установки корректной временной зоны используйте коллекцию Time.TIMEZONE
- tz (Number) - число соответствующее сдвигу в часах
(time) возвращает текущий объект Time с обновленными значениями (можно использовать цепочку вызовов)
let time = new Time(0) // Время соответствующее 01.01.1970 00:00:00
time.setTz(Time.TIMEZONE.plus_6) // Устанавливаем часовой пояс UTC+6
console.log(time.toISO()) // Вывод: 1970-01-01T06:00:00.000+0600
Функция устанавливающая время в начало дня - 00:00:00.000. Если установлен часовой пояс отличный от UTC-0, будет производится корректировка фактического времени
(time) возвращает текущий объект Time с обновленными значениями (можно использовать цепочку вызовов)
let time = new Time(0) // Время соответствующее 01.01.1970 00:00:00
time.setTz(Time.TIMEZONE.plus_6) // Устанавливаем часовой пояс UTC+6
console.log(time.startDay().toISO()) // Вывод: 1970-01-01T00:00:00.000+0600
Функция устанавливающая время в конец дня - 23:59:59.999. Если установлен часовой пояс отличный от UTC-0, будет производится корректировка фактического времени
(time) возвращает текущий объект Time с обновленными значениями (можно использовать цепочку вызовов)
let time = new Time(0) // Время соответствующее 01.01.1970 00:00:00
time.setTz(Time.TIMEZONE.plus_6) // Устанавливаем часовой пояс UTC+6
console.log(time.endDay().toISO()) // Вывод: 1970-01-01T23:59:59.999+0600
Функция для сравнения двух объектов Time с точностью до секунд или миллисекунд
- time (Time) - объект Time для сравнения
- isEqMillis (Boolean)(не обязательный) - параметр указывающий учитывать ли миллисекунды при сравнении (по умолчанию false)
(Boolean) возвращает результат сравнения (true - если равны, false - не равны)
let time = new Time(0) // Время соответствующее 01.01.1970 00:00:00
let time2 = new Time(1000) // Время соответствующее 01.01.1970 00:00:01
console.log(time.equals(time2)) // Вывод: false
Функция для сравнения двух объектов Time по дате
- time (Time) - объект Time для сравнения
(Boolean) возвращает результат сравнения (true - если равны, false - не равны)
let time = new Time(0) // Время соответствующее 01.01.1970 00:00:00
let time2 = new Time(1000000) // Время соответствующее 01.01.1970 16:40:00
console.log(time.equalsDate(time2)) // Вывод: true
Функция для сравнения двух объектов Time по времени без учета даты
- time (Time) - объект Time для сравнения
- isEqMillis (Boolean)(не обязательный) - параметр указывающий учитывать ли миллисекунды при сравнении (по умолчанию false)
(Boolean) возвращает результат сравнения (true - если равны, false - не равны)
let time = Time.create(2022,1,15,22,10) // Время соответствующее 15.01.2022 22:10:00
let time2 = Time.create(2023,5,6,22,10) // Время соответствующее 06.05.2023 22:10:00
console.log(time.equalsTime(time2)) // Вывод: true
Функция для выявления, находится ли текущий объект Time в промежутке между time1 и time2
- time1 (Object | Number | Time | Date | string) - Объект Time, Date, строка времени, объект содержащий информацию о дате или метка времени UNIX
- time2 (Object | Number | Time | Date | string) - Объект Time, Date, строка времени, объект содержащий информацию о дате или метка времени UNIX
(Boolean) Возвращает логическое значение
let time = Time.create(2022,1,15,22,10) // Время соответствующее 15.01.2022 22:10:00
let time2 = Time.create(2026,5,6,22,10) // Время соответствующее 06.05.2026 22:10:00
let time3 = new Time() // Время соответствующее 18.02.2024
console.log(time3.isBetween(time,time2)) // Вывод: true
Функция для получения кол-ва секунд прошедших между двумя временными метками, всегда возвращает целое положительное число
- time (Object | Number | Time | Date | string) - Объект Time, Date, строка времени, объект содержащий информацию о дате или метка времени UNIX
(Number) возвращает кол-во секунд прошедших между датами
let time = new Time(0) // Время соответствующее 01.01.1970 00:00:00
let time2 = new Time(100000) // Время соответствующее 01.01.1970 00:01:40
console.log(time.secondsBetween(time2)) // Вывод: 100
Функция для получения кол-ва минут прошедших между двумя временными метками, всегда возвращает целое положительное число
- time (Object | Number | Time | Date | string) - Объект Time, Date, строка времени, объект содержащий информацию о дате или метка времени UNIX
(Number) возвращает кол-во минут прошедших между датами
let time = new Time(0) // Время соответствующее 01.01.1970 00:00:00
let time2 = new Time(100000) // Время соответствующее 01.01.1970 00:01:40
console.log(time.minutesBetween(time2)) // Вывод: 1
Функция для получения кол-ва часов прошедших между двумя временными метками, всегда возвращает целое положительное число
- time (Object | Number | Time | Date | string) - Объект Time, Date, строка времени, объект содержащий информацию о дате или метка времени UNIX
(Number) возвращает кол-во часов прошедших между датами
let time = new Time(0) // Время соответствующее 01.01.1970 00:00:00
let time2 = new Time(54000000) // Время соответствующее 01.01.1970 15:00:00
console.log(time.hoursBetween(time2)) // Вывод: 15
Функция для получения кол-ва дней прошедших между двумя временными метками, всегда возвращает целое положительное число
- time (Object | Number | Time | Date | string) - Объект Time, Date, строка времени, объект содержащий информацию о дате или метка времени UNIX
(Number) возвращает кол-во дней прошедших между датами
let time = Time.create(2022,1,1) // Время соответствующее 01.01.2022 00:00:00
let time2 = Time.create(2022,1,15) // Время соответствующее 15.01.2022 15:00:00
console.log(time.daysBetween(time2)) // Вывод: 14
Функция для получения кол-ва прошедших недель между двумя временными метками, всегда возвращает целое положительное число
- time (Object | Number | Time | Date | string) - Объект Time, Date, строка времени, объект содержащий информацию о дате или метка времени UNIX
(Number) возвращает кол-во недель прошедших между датами
let time = Time.create(2022,1,1) // Время соответствующее 01.01.2022 00:00:00
let time2 = Time.create(2022,1,15) // Время соответствующее 15.01.2022 15:00:00
console.log(time.weeksBetween(time2)) // Вывод: 2
Функция для получения кол-ва месяцев прошедших между двумя временными метками, всегда возвращает целое положительное число
- time (Object | Number | Time | Date | string) - Объект Time, Date, строка времени, объект содержащий информацию о дате или метка времени UNIX
(Number) возвращает кол-во месяцев прошедших между датами
let time = Time.create(2022,1,1) // Время соответствующее 01.01.2022 00:00:00
let time2 = Time.create(2022,3,15) // Время соответствующее 15.03.2022 15:00:00
console.log(time.monthBetween(time2)) // Вывод: 2
Функция для получения кол-ва лет прошедших между двумя временными метками, всегда возвращает целое положительное число
- time (Object | Number | Time | Date | string) - Объект Time, Date, строка времени, объект содержащий информацию о дате или метка времени UNIX
(Number) возвращает кол-во месяцев прошедших между датами
let time = Time.create(2020,1,1) // Время соответствующее 01.01.2020 00:00:00
let time2 = Time.create(2022,3,15) // Время соответствующее 15.03.2022 15:00:00
console.log(time.yearsBetween(time2)) // Вывод: 2
Функция для разбиения текущего Time объекта на несколько временных меток
-
splitter (Splitter | Number) - Кол-во отрезков на которые нужно разбить, либо объект настроек.
Объект типа Splitter может содержать следующие поля:
- days (Number) - Кол-во дней
- hours (Number) - Кол-во часов
- minutes (Number) - Кол-во минут
- seconds (Number) - Кол-во секунд
- ticks (Number) - Кол-во тиков(миллисекунд)
- lastReturn (Boolean) - Параметр указывающий нужно ли возвращать последнюю временную метку если она будет за границами диапазона
При использовании объекта, все свойства не имеют ограничений по кол-ву и шаг разбиения расчитывается в результате сложения всех числовых свойств. Например: используя 120 дней и 60 часов получим 122д. 12ч.
-
toDate (Time | null)(не обязатедьный) - Второй объект Time для ограничения периода разбиения, (в этом случае начальной меткой времени считается наименьшая, чтобы сменить порядок используйте descending). Если передано null то время будет разбито на части начиная с 01.01.0001 числа по текущую метку времени.
-
descending (Boolean)(не обязатедьный) - Логический параметр указывающий направление разбиения, по умолчанию - false (от меньшего к большему)
-
limit (Number)(не обязатедьный) - Ограничение splitter'а по кол-ву разбиений
(Array<Time>) возвращает массив временных меток, (в случае если splitter указан как число меньше 2 или диапаон разбиения по времени окажется больше чем диапазон времени между текущим Time и toDate - вернет пустой массив)
let time = Time.create(2020,1,1) // Время соответствующее 01.01.2020 00:00:00
let time2 = Time.create(2021,1,1) // Время соответствующее 01.01.2021 15:00:00
let times = time.split(6,time2)
for(let t of times){
console.log(t.toISO())
}
//Результат вывода:
2020-01-01T00:00:00.000+0000
2020-03-14T04:48:00.000+0000
2020-05-26T09:36:00.000+0000
2020-08-07T14:24:00.000+0000
2020-10-19T19:12:00.000+0000
2021-01-01T00:00:00.000+0000
Функция для форматирования времени с учетом локали для текущего объекта Time. Поддерживает все параметры из Intl.DateTimeFormat. Временная зона options.timeZone может быть указана как объект Time.TIMEZONE, цифра или строка
-
locale (String) - наименование локали
-
options (Object) - объект параметров из Intl.DateTimeFormat
(String) возвращает отформатированную строку
let t = new Time()
console.log(t.formatLocale('en', {dateStyle: 'full', timeStyle: 'long'})) // Вывод: Sunday, February 18, 2024 at 2:02:12 PM GMT
Функция для свободного форматирования строки с использованием текущего объекта Time
Для того чтобы использовать вставку данных из объекта Time, в строке необходимо использовать паттерн - @{спец.символы}
На данный момент функция поддерживает следующие обозначения в шаблоне:
- Y - год в формате YYYY
- y - год в формате YY
- D - день месяца (с добавочными нулями)
- М - месяц (с добавочными нулями)
- H - часы в 24-часовом формате(с добавочными нулями)
- h - часы в 12-часовом формате (с добавочными нулями)
- m - минуты (с добавочными нулями)
- S - секунды (с добавочными нулями)
- s - миллисекунды (с добавочными нулями)
- Th - Часы смещения по временной зоне
- Tp - Минуты смещения по временной зоне
- Tz - Часы и минуты смещения по временной зоне
- pattern (String) - входной шаблон строки
(String) возвращает отформатированную строку
let time = Time.create(2022,1,1,10,45) // Время соответствующее 01.01.2022 10:45:00
console.log(time.format('Время публикации - @{H:m}')) // Вывод: Время публикации - 10:45
Функция для получения строки времени в формате ISO
- format (String)(не обязательный) - входной шаблон формата ISO, (поддерживает только шаблоны из Time.ISO_FORMATS)
(String) возвращает отформатированную строку
let time = Time.create(2022,1,1,10,45) // Время соответствующее 01.01.2022 10:45:00
console.log(time.toISO()) // Вывод: 2022-01-01T10:45:00.000+0000
Функция конвертации текущего объекта Time в Date
(Date) возвращает стандартный объект Date JS
let time = new Time()
let date = time.convertToDate() //объект Date
Функция преобразования текущего времени в строку, (по умолчанию используется toISO())
(String) возвращает строковое представление даты в формате ISO
let time = new Time()
console.log(`${time}`) //Вывод: 2024-02-18T20:37:45.130+0000
Функция для преобразования объекта Time в примитив Number, т.е объекты можно складывать и вычитать используя арифметические операторы, при этом используется приведение к ticks
let time = Time.create(1,1,1,10) // Время соответствующее 01.01.0001 10:00:00
let time2 = Time.create(1,1,1,16) // Время соответствующее 01.01.0001 16:00:00
console.log(time+time2) // 93600000