BaSys.Docs

Работа с датами

В языке Java Script для работы с датой и временем предназначен встроенный объект Date. Объект Date предоставляет многочисленные методы для манипуляции датой и временем. Подробнее со стандартными возможностями объекта Date можно познакомиться в учебнике или справке по языку.

Создание

Объект Date создается при помощи ключевого слова new. В случае если конструктор вызван без параметров возвращаются текущие дата и время.

// Текущие дата и время.
new Date();

Также в качестве параметра в конструктор объекта Date можно передать либо строковое представление даты в ISO формате, либо числовые значения компонентов даты(год, месяц и т.д.).

// Создание даты путем передачи строкового представления даты в ISO формате.
new Date('2024-09-17T10:40:21');
// Создание даты путем передачи значений компонентов даты.
new Date(2024, 9, 17, 10, 40, 21, 0);

Также текущую дату и время можно получить с помощью функции BaSYS dateTimeNow(). Данная функция создана для удобства использования, результат её вызова эквивалентен new Date().

// Текущая дата и время. Эквивалентно new Date().
dateTimeNow();

Методы BaSYS, расширяющие объект Date

Для удобства работы с датой и временем мы создали ряд методов, расширяющих объект Date.

beginDay

Возвращает начало дня для указанной даты.

Синтаксис

dateValue.beginDay();

Параметры

нет

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

Date

Пример

(new Date('2024-09-17T11:39:45')).beginDay(); // 17.09.2024 00:00:00

endDay

Возвращает конец дня для указанной даты.

Синтаксис

dateValue.endDay();

Параметры

нет

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

Date

Пример

(new Date('2024-09-17T11:39:45')).endDay(); // 17.09.2024 23:59:59.999

addDays

Добавляет указанное количество дней к дате. Если передано отрицательное число, будет выполнено вычитание. Дробная часть отбрасывается.

Синтаксис

dateValue.addDays(days);

Параметры

days: number - число добавляемых дней.

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

Date

Пример

(new Date('2024-09-17T11:39:45')).addDays(1); // 18.09.2024 11:39:45
(new Date('2024-09-17T11:39:45')).addDays(1.3); // 18.09.2024 11:39:45
(new Date('2024-09-17T11:39:45')).addDays(-1); // 16.09.2024 11:39:45

beginMonth

Возвращает начало месяца для указанной даты. Данный метод создает новый объект Date, устанавливая дату на первый день месяца в 00:00:00.

Синтаксис

dateValue.beginMonth();

Параметры

нет

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

Date

Пример

(new Date('2024-09-17T11:39:45')).beginMonth(); // 01.09.2024 00:00:00

endMonth

Возвращает конец месяца для указанной даты. Данный метод создает новый объект Date, устанавливая дату на последний день месяца в 23:59:59.999.

Синтаксис

dateValue.endMonth();

Параметры

нет

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

Date

Пример

(new Date('2024-09-17T11:39:45')).endMonth(); // 30.09.2024 23:59:59.999

addMonths

Добавляет указанное количество месяцев к дате. Если передано отрицательное число, будет выполнено вычитание. Дробная часть отбрасывается.

Синтаксис

dateValue.addMonths(months);

Параметры

months: number - число добавляемых месяцев.

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

Date

Пример

(new Date('2024-09-17T11:39:45')).addMonths(1); // 17.10.2024 11:39:45
(new Date('2024-09-17T11:39:45')).addMonths(1.3); // 17.10.2024 11:39:45
(new Date('2024-09-17T11:39:45')).addMonths(-1); // 17.08.2024 11:39:45

beginQuarter

Возвращает начало квартала для указанной даты. Данный метод создает новый объект Date, устанавливая дату на первый квартала месяца в 00:00:00.

Синтаксис

dateValue.beginQuarter();

Параметры

нет

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

Date

Пример

(new Date('2024-09-17T11:39:45')).beginQuarter(); // 01.08.2024 00:00:00

endQuarter

Возвращает конец квартала для указанной даты. Данный метод создает новый объект Date, устанавливая дату на последний день квартала в 23:59:59.999.

Синтаксис

dateValue.endQuarter();

Параметры

нет

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

Date

Пример

(new Date('2024-09-17T11:39:45')).endQuarter(); // 30.09.2024 23:59:59.999

addQuarters

Добавляет указанное количество кварталов к дате. Если передано отрицательное число, будет выполнено вычитание. Дробная часть отбрасывается.

Синтаксис

dateValue.addQuarters(quarters);

Параметры

quarters: number - число добавляемых кварталов.

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

Date

Пример

(new Date('2024-09-17T11:39:45')).addQuarters(1); // 17.12.2024 11:39:45
(new Date('2024-09-17T11:39:45')).addQuarters(1.3); // 17.12.2024 11:39:45
(new Date('2024-09-17T11:39:45')).addQuarters(-1); // 17.06.2024 11:39:45

beginYear

Возвращает начало года для указанной даты. Данный метод создает новый объект Date, устанавливая дату на первый день года в 00:00:00.

Синтаксис

dateValue.beginYear();

Параметры

нет

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

Date

Пример

(new Date('2024-09-17T11:39:45')).beginYear(); // 01.01.2024 00:00:00

endYear

Возвращает конец года для указанной даты. Данный метод создает новый объект Date, устанавливая дату на последний день года в 23:59:59.999.

Синтаксис

dateValue.endYear();

Параметры

нет

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

Date

Пример

(new Date('2024-09-17T11:39:45')).endYear(); // 31.12.2024 23:59:59.999

addYears

Добавляет указанное количество лет к дате. Если передано отрицательное число, будет выполнено вычитание. Дробная часть отбрасывается.

Синтаксис

dateValue.addYears(years);

Параметры

years: number - число добавляемых лет.

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

Date

Пример

(new Date('2024-09-17T11:39:45')).addYears(1); // 17.09.2025 11:39:45
(new Date('2024-09-17T11:39:45')).addYears(1.3); // 17.09.2025 11:39:45
(new Date('2024-09-17T11:39:45')).addYears(-1); // 17.09.2023 11:39:45

Прочие функции BaSYS, для работы с датами

dateDifference

Вычисляет разность между двумя датами для различных типов интервала. Разность вычисляется между конечной датой и начальной датой finishDate - startDate. Если дата окончания интервала предшествует дате начала интервала, результат будет отрицательным. При использовании интервала ‘quarter’, каждый квартал считается как 3 месяца.

Синтаксис

dateDifference(startDate, finishDate, intervalKind)

Параметры

startDate: Date - дата начала интервала.

finishDate: Date - дата окончания интервала.

intervalKind: String - вид интервала. Допустимые значения:

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

Number

Пример

var date1 = new Date('2024-09-17');
var date2 = new Date('2025-09-19');

dateDifference(date1, date2, 'day'); // 367
dateDifference(date1, date2, 'quarter'); // 4
dateDifference(date1, date2, 'month'); // 12
dateDifference(date1, date2, 'year'); // 1

dateTimeNow

Возвращает текущую дату и время. Данная функция создана для удобства использования, результат её вызова эквивалентен new Date().

Синтаксис

dateTimeNow()

Параметры

нет

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

Date