npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

timelex

v1.0.3

Published

Module for working with time

Downloads

4

Readme

⏱️ Модуль для работы со временем Timelex ⏱️

Оглавление

 

 

Конструкторы и краткое описание

 

В основе всех вычислений объектов 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

 

  • 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}'
}

 

 

Статические функции для работы со временем

 

Time.isLeapYear(year)

Функция для проверки года на високосность

Параметры:

  • year (Number) - год от 1 до 9999

Возврат:

(Boolean) Логическое значение указывающее является ли год високосным


Time.isLeapYear(2022); // false
Time.isLeapYear(2024); // true

 


 

Time.setDefaultTz(tz)

Функция установки текущей временной зоны по умолчанию, для установки корректной временной зоны используйте коллекцию Time.TIMEZONE

Параметры:

  • tz (Number) - число соответствующее сдвигу в часах

Возврат:

(Boolean) Логическое значение указывающее удалось ли установить часовой пояс


Time.setDefaultTz(Time.TIMEZONE.plus_3) // Устанавливает временное смещение по умолчанию +03:00

 


 

Time.getMonthDayCount(month,isLeap)

Функция для получения количества дней указанного месяца

Параметры:

  • month (Number) - Месяц от 1 до 12
  • isLeap (Boolean) - Значение указывающее является ли год високосным

Возврат:

(Number) Число дней в указанном месяце


Time.getMonthDayCount(2,Time.isLeapYear(2008)) // Вернет 29
Time.getMonthDayCount(2,false) // Вернет 28

 


 

Time.getMonthString(month,locale)

Функция для получения наименования указанного месяца, либо всех месяцев в зависимости от параметра month

Параметры:

  • month (Number)(не обязательный) - Месяц от 1 до 12, если не указывать или указать -1 вернет массив наименований всех месяцев
  • locale (String)(не обязательный) - Параметр локализации (по умолчанию - ru)

Возврат:

(String | Array<String>) Строка или массив строк с наименованием месяцев


Time.getMonthString() // Вернет ['Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь']
Time.getMonthString(3) // Вернет 'Март'

 


 

Time.getDayInWeekString(day,locale)

Функция для получения наименования дня недели, либо всех дней в зависимости от параметра day

Параметры:

  • day (Number)(не обязательный) - День недели от 1 до 7, если не указывать или указать -1 вернет массив наименований всех дней недели
  • locale (String)(не обязательный) - Параметр локализации (по умолчанию - ru)

Возврат:

(String | Array<String>) Строка или массив строк с наименованием дней недели


Time.getDayInWeekString() // Вернет ['Понедельник','Вторник','Среда','Четверг','Пятница','Суббота','Восресенье']
Time.getDayInWeekString(3) // Вернет 'Среда'

 


 

Time.random(min,max,tz)

Функция для получения случайной временной метки в пределах от 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

 


 

Time.timestampToTicks(timestamp)

Функция для получения кол-ва миллисекунд прошедших с 1 января 1 года н.э. из метки времени UNIX

Параметры:

  • timestamp (Number) - Временная метка Unix

Возврат:

(Number) Кол-во миллисекунд


Time.timestampToTicks(100000) // Вернет 62135596900000

 


 

Time.ticksToTimestamp(ticks)

Функция для получения метки времени UNIX из кол-ва миллисекунд прошедших с 1 января 1 года н.э.

Параметры:

  • ticks (Number) - Кол-во миллисекунд с 1 января 1 г. н.э.

Возврат:

(Number) Временная метка UNIX в мс


Time.timestampToTicks(62135596900000) // Вернет 100000

 


 

Time.leapYearsBeetwen(yearStart,yearEnd)

Функция для нахождения кол-ва високосных дней(лет) в указанном промежутке лет

Параметры:

  • yearStart (Number) - Начальный год (от 0 до 9999)
  • yearEnd (Number) - Конечный год (от 0 до 9999)

Возврат:

(Number) Кол-во високосных дней в промежутке между yearStart и yearEnd не включая yearEnd если он високосный


Time.leapYearsBeetwen(2000,2022) // Вернет 5
Time.leapYearsBeetwen(2000,2020) // Вернет 4

 


 

Time.parseISO(str)

Функция для получения ticks из временной строки в формате ISO

Параметры:

  • str (String) - Строка времени в формате ISO

Возврат:

(Number) ticks метка времени


console.log(Time.parseISO('2024-02-18T15:21:56.491+0000')) //Вывод: 63843866516491

 

 


Поля объектов Time

 

  • 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) - Часовой пояс в виде объекта временной зоны

 

 


Функции объектов Time

 

add(timeObj)

Функция для сложения дат, при использовании данной функции можно получить результат отличный от ожидаемого, т.к складываются временные метки а не сама дата.

Параметры:

  • 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

 


 

diff(timeObj)

Функция для вычитания дат

Параметры:

  • 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

 


 

addSeconds(seconds)

Функция для сложения и вычитания секунд (для вычитания используйте отрицательные значения)

Параметры:

  • 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 

 


 

addMinutes(minutes)

Функция для сложения и вычитания минут (для вычитания используйте отрицательные значения)

Параметры:

  • 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 

 


 

addHours(hours)

Функция для сложения и вычитания часов (для вычитания используйте отрицательные значения)

Параметры:

  • 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 

 


 

addDays(days)

Функция для сложения и вычитания дней (для вычитания используйте отрицательные значения)

Параметры:

  • 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 

 


 

addMonth(months)

Функция для сложения и вычитания месяцев (для вычитания используйте отрицательные значения)

Параметры:

  • 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 

 


 

addYears(years)

Функция для сложения и вычитания лет (для вычитания используйте отрицательные значения)

Параметры:

  • 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 

 


 

getMonthString(locale)

Функция для получения наименования текущего месяца

Параметры:

  • locale (String)(не обязательный) - Параметр локализации (по умолчанию - ru)

Возврат:

(String) Строка с наименованием месяца


let time = new Time(0) // Время соответствующее 01.01.1970 00:00:00
console.log(time.getMonthString()) // Вывод: Январь

 


 

getWeekDaysString(locale)

Функция для получения наименования текущего дня недели

Параметры:

  • locale (String)(не обязательный) - Параметр локализации (по умолчанию - ru)

Возврат:

(String) Строка с наименованием дня недели


let time = new Time(0) // Время соответствующее 01.01.1970 00:00:00
console.log(time.getWeekDaysString()) // Вывод: Четверг

 


 

getMonthDayCount()

Функция для получения кол-ва дней в месяце текущего объекта даты

Возврат:

(Number) Кол-во дней в месяце


let time = new Time(0) // Время соответствующее 01.01.1970 00:00:00
console.log(time.getMonthDayCount()) // Вывод: 31

 


 

update()

Функция для обновления объекта до текущего времени

Возврат:

(Time) возвращает текущий объект Time с обновленными значениями (можно использовать цепочку вызовов)


let time = new Time(0) // Время соответствующее 01.01.1970 00:00:00
time.update() // Время соответствующее текущему

 


 

setTime(hours,minutes,seconds,milliseconds)

Функция установки времени для текущего объекта 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

 


 

setDate(day,month,year)

Функция установки даты для текущего объекта 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 число, которое было установлено ранее, корректно для февраля

 


 

setTz(tz)

Функция установки текущей временной зоны по умолчанию, для установки корректной временной зоны используйте коллекцию 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

 


 

startDay()

Функция устанавливающая время в начало дня - 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

 


 

endDay()

Функция устанавливающая время в конец дня - 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

 


 

equals(time, isEqMillis)

Функция для сравнения двух объектов 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

 


 

equalsDate(time)

Функция для сравнения двух объектов 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

 


 

equalsTime(time, isEqMillis)

Функция для сравнения двух объектов 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

 


 

isBetween(time1, time2)

Функция для выявления, находится ли текущий объект 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

 


 

secondsBetween(time)

Функция для получения кол-ва секунд прошедших между двумя временными метками, всегда возвращает целое положительное число

Параметры:

  • 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

 


 

minutesBetween(time)

Функция для получения кол-ва минут прошедших между двумя временными метками, всегда возвращает целое положительное число

Параметры:

  • 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

 


 

hoursBetween(time)

Функция для получения кол-ва часов прошедших между двумя временными метками, всегда возвращает целое положительное число

Параметры:

  • 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

 


 

daysBetween(time)

Функция для получения кол-ва дней прошедших между двумя временными метками, всегда возвращает целое положительное число

Параметры:

  • 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

 


 

weeksBetween(time)

Функция для получения кол-ва прошедших недель между двумя временными метками, всегда возвращает целое положительное число

Параметры:

  • 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

 


 

monthBetween(time)

Функция для получения кол-ва месяцев прошедших между двумя временными метками, всегда возвращает целое положительное число

Параметры:

  • 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

 


 

yearsBetween(time)

Функция для получения кол-ва лет прошедших между двумя временными метками, всегда возвращает целое положительное число

Параметры:

  • 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

 


 

split(splitter, toDate, descending, limit)

Функция для разбиения текущего 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

 


 

formatLocale(locale, options)

Функция для форматирования времени с учетом локали для текущего объекта 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

 


 

format(pattern)

Функция для свободного форматирования строки с использованием текущего объекта 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

 


 

toISO(format)

Функция для получения строки времени в формате 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

 


 

convertToDate()

Функция конвертации текущего объекта Time в Date

Возврат:

(Date) возвращает стандартный объект Date JS


let time = new Time() 
let date = time.convertToDate() //объект Date
   

 


 

toString()

Функция преобразования текущего времени в строку, (по умолчанию используется toISO())

Возврат:

(String) возвращает строковое представление даты в формате ISO


let time = new Time() 
console.log(`${time}`) //Вывод: 2024-02-18T20:37:45.130+0000 
   

 


 

valueOf()

Функция для преобразования объекта 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