Важно: для инициализации Datetime не следует использовать объект JavaScript Date

Имеет конструкторы:

new Datetime(value: string, format?: string): TDatetime;
new Datetime(value: number) : TDatetime;
new Datetime(year: number, month: number, day?: number, hours?: number, minutes?: number, seconds?: number, ms?: number): TDatetime;

Примеры создания объектов даты-времени:

const now = new Datetime();
const datetime1 = new Datetime(2022, 2, 24, 9, 0, 0, 0);
const datetime2 = new Datetime(1645686000);
const datetime3 = new Datetime('2022-02-24');
const datetime4 = new Datetime('2022-02-24T00:00:00.000Z');
const datetime5 = new Datetime('24.02.2022', 'DD.MM.YYYY');

Если в конструкторе записывать дату как строку и не указывать формат, то по умолчанию значение проверяется на соответствие формату YYYY-MM-DDTHH:mm:ss.SSSZ. Поэтому задавать значение можно как:

  • 2021-01
  • 2021-01-23
  • 2021-01-21T08:30 и т. д.

Значения этого типа неизменяемые, так что методы мутации возвращают обновлённое значение, не меняя исходного.

const now = new Datetime();
const yesterday = now.addDate(0, 0, -1);

now.after(yesterday) // true

Чтобы все расчёты в скрипте проходили в часовом поясе пользователя, нужно это явно указать, задав текущую временную зону:

// Получаем нужного пользователя для расчетов
const user = ...;
// Устанавливаем временную зону для всех дальнейших вычислений в скрипте
System.timezones.current = user.timezone;
const today_22_00 = Context.data.datavremya.getDate().asDatetime(new TTime(22, 0, 0, 0));

Hierarchy

  • TDatetime

Properties

Readonly day

day: number

День месяца (1-31).

Readonly hours

hours: number

Часы (0-23).

Readonly milliseconds

milliseconds: number

Миллисекунды (0-999).

Readonly minutes

minutes: number

Минуты (0-59).

Readonly month

month: number

Месяц (1-12).

Readonly seconds

seconds: number

Секунды (0-59).

Readonly year

year: number

Год.

Methods

add

  • Добавить длительность.

    Parameters

    Returns TDatetime

addDate

  • addDate(years: number, month: number, days: number): TDatetime
  • Добавить дни, месяцы, годы.

    Parameters

    • years: number
    • month: number
    • days: number

    Returns TDatetime

after

  • Проверка, что текущая дата идёт после date.

    Parameters

    Returns boolean

afterOrEqual

  • Проверка, что текущая дата идет после date или совпадает с этим значением.

    Пример использования:

    const startDatetime = new Datetime();
    const endDatetime = (new Datetime()).addDate(0, 0, 1);
    const beforeOrEqual = startDatetime.afterOrEqual(endDatetime); // false
    

    Parameters

    Returns boolean

asDate

  • asDate(): Date
  • Приведение к стандартному типу Date.

    Returns Date

before

  • Проверка, что текущая дата идёт перед date.

    Parameters

    Returns boolean

beforeOrEqual

  • Проверка, что текущая дата идёт перед date или совпадает с этим значением.

    Пример использования:

    const startDatetime = new Datetime();
    const endDatetime = (new Datetime()).addDate(0, 0, 1);
    const beforeOrEqual = startDatetime.beforeOrEqual(endDatetime); // true
    

    Parameters

    Returns boolean

equal

  • Проверка на совпадение.

    Parameters

    Returns boolean

format

  • format(format?: undefined | string): string
  • Приведение к строке в определённом формате.

    Используется синтаксис moment.format(), например:

    const datetime = new Datetime();
    datetime.format();                                // "2022-02-24T09:00:00+04:00" (стандарт ISO 8601)
    datetime.format("dddd, MMMM Do YYYY, h:mm:ss a"); // "четверг, февраль 24-го 2022, 9:00:00 утра"
    datetime.format("ddd, h A");                      // "чт, 9 утра"
    datetime.format("[Сегодня] dddd");               // "Сегодня четверг"
    

    Parameters

    • Optional format: undefined | string

    Returns string

getDate

  • Получить дату.

    Возвращает дату в указанном часовом поясе; если не указан — в текущем (по умолчанию часовой пояс компании).

    Parameters

    Returns TDate

getTime

  • Получить время.

    Возвращает время с начала суток в указанном часовом поясе; если не указан — в текущем (по умолчанию часовой пояс компании).

    Parameters

    Returns TTime

getTz

  • Получить часовой пояс.

    Returns TTimezone

sub

  • Вычитание дат; возвращает длительность.

    Parameters

    Returns TDuration

truncateTime

  • Округлить до начала дня.

    Сбрасывает время до 00:00 и возвращает дату по UTC.

    Returns TDatetime

unix

  • unix(): number
  • Количество секунд от 00:00:00 01.01.1970 UTC.

    Returns number

utc

  • Возвращает дату и время по UTC.

    Returns TDatetime