Форматирование даты

1. :formatD(patternOut, patternIn)

Описание синтаксиса

Форматирует дату, принимая выходной формат patternOut и необязательный входной формат patternIn (по умолчанию ISO 8601).

Частые примеры
{d.createdAt:formatD(YYYY-MM-DD)}           // Выводит 2024-01-15
{d.createdAt:formatD(MMM D, YYYY)}          // Выводит Jan 15, 2024
{d.updatedAt:formatD(MMMM D, YYYY HH:mm)}   // Выводит January 15, 2024 14:30
{d.orderDate:formatD(YYYY/MM/DD HH:mm:ss)}  // Выводит 2024/01/15 14:30:25
{d.birthday:formatD(MM/DD)}                 // Выводит 01/15
{d.meetingTime:formatD(HH:mm)}              // Выводит 14:30
{d.deadline:formatD(dddd, MMMM D, YYYY)}    // Выводит Monday, January 15, 2024
Дополнительные примеры форматов
'20160131':formatD(L)      // Выводит 01/31/2016
'20160131':formatD(LL)     // Выводит January 31, 2016
'20160131':formatD(LLLL)   // Выводит Sunday, January 31, 2016 12:00 AM
'20160131':formatD(dddd)   // Выводит Sunday
Результат

На выходе дата в указанном формате.

2. :addD(amount, unit, patternIn)

Описание синтаксиса

Добавляет к дате указанное количество времени. Поддерживаются единицы: day (день), week (неделя), month (месяц), quarter (квартал), year (год), hour (час), minute (минута), second (секунда), millisecond (миллисекунда).
Параметры:

  • amount: добавляемое значение.
  • unit: единица времени (без учёта регистра).
  • patternIn: необязательный входной формат (по умолчанию ISO8601).
Пример
'2017-05-10T15:57:23.769561+03:00':addD('3', 'day')    // Выводит "2017-05-13T12:57:23.769Z"
'2017-05-10 15:57:23.769561+03:00':addD('3', 'month')      // Выводит "2017-08-10T12:57:23.769Z"
'20160131':addD('3', 'day')       // Выводит "2016-02-03T00:00:00.000Z"
'20160131':addD('3', 'month')     // Выводит "2016-04-30T00:00:00.000Z"
'31-2016-01':addD('3', 'month', 'DD-YYYY-MM')  // Выводит "2016-04-30T00:00:00.000Z"
Результат

На выходе новая дата после добавления указанного времени.

3. :subD(amount, unit, patternIn)

Описание синтаксиса

Вычитает из даты указанное количество времени. Параметры те же, что и у addD.

Пример
'2017-05-10T15:57:23.769561+03:00':subD('3', 'day')    // Выводит "2017-05-07T12:57:23.769Z"
'2017-05-10 15:57:23.769561+03:00':subD('3', 'month')      // Выводит "2017-02-10T12:57:23.769Z"
'20160131':subD('3', 'day')       // Выводит "2016-01-28T00:00:00.000Z"
'20160131':subD('3', 'month')     // Выводит "2015-10-31T00:00:00.000Z"
'31-2016-01':subD('3', 'month', 'DD-YYYY-MM')  // Выводит "2015-10-31T00:00:00.000Z"
Результат

На выходе новая дата после вычитания указанного времени.

4. :startOfD(unit, patternIn)

Описание синтаксиса

Устанавливает дату на начало указанной единицы времени.
Параметры:

  • unit: единица времени.
  • patternIn: необязательный входной формат.
Пример
'2017-05-10T15:57:23.769561+03:00':startOfD('day')    // Выводит "2017-05-10T00:00:00.000Z"
'2017-05-10 15:57:23.769561+03:00':startOfD('month')      // Выводит "2017-05-01T00:00:00.000Z"
'20160131':startOfD('day')       // Выводит "2016-01-31T00:00:00.000Z"
'20160131':startOfD('month')     // Выводит "2016-01-01T00:00:00.000Z"
'31-2016-01':startOfD('month', 'DD-YYYY-MM')  // Выводит "2016-01-01T00:00:00.000Z"
Результат

На выходе дата, установленная на начало указанной единицы времени.

5. :endOfD(unit, patternIn)

Описание синтаксиса

Устанавливает дату на конец указанной единицы времени.
Параметры такие же, как у startOfD.

Пример
'2017-05-10T15:57:23.769561+03:00':endOfD('day')    // Выводит "2017-05-10T23:59:59.999Z"
'2017-05-10 15:57:23.769561+03:00':endOfD('month')      // Выводит "2017-05-31T23:59:59.999Z"
'20160131':endOfD('day')       // Выводит "2016-01-31T23:59:59.999Z"
'20160131':endOfD('month')     // Выводит "2016-01-31T23:59:59.999Z"
'31-2016-01':endOfD('month', 'DD-YYYY-MM')  // Выводит "2016-01-31T23:59:59.999Z"
Результат

На выходе дата, установленная на конец указанной единицы времени.

6. :diffD(toDate, unit, patternFromDate, patternToDate)

Описание синтаксиса

Вычисляет разницу между двумя датами и выводит её в указанной единице. Поддерживаются единицы:

  • day(s) или d
  • week(s) или w
  • quarter(s) или Q
  • month(s) или M
  • year(s) или y
  • hour(s) или h
  • minute(s) или m
  • second(s) или s
  • millisecond(s) или ms (единица по умолчанию)

Параметры:

  • toDate: целевая дата.
  • unit: единица вывода.
  • patternFromDate: необязательный формат начальной даты.
  • patternToDate: необязательный формат целевой даты.
Пример
'20101001':diffD('20101201')              // Выводит 5270400000
'20101001':diffD('20101201', 'second')      // Выводит 5270400
'20101001':diffD('20101201', 's')           // Выводит 5270400
'20101001':diffD('20101201', 'm')           // Выводит 87840
'20101001':diffD('20101201', 'h')           // Выводит 1464
'20101001':diffD('20101201', 'weeks')       // Выводит 8
'20101001':diffD('20101201', 'days')        // Выводит 61
'2010+10+01':diffD('2010=12=01', 'ms', 'YYYY+MM+DD', 'YYYY=MM=DD')  // Выводит 5270400000
Результат

На выходе разница времени между двумя датами, преобразованная в указанную единицу.

7. :convDate(patternIn, patternOut)

Описание синтаксиса

Преобразует дату из одного формата в другой (не рекомендуется к использованию).
Параметры:

  • patternIn: входной формат даты.
  • patternOut: выходной формат даты.
Пример
'20160131':convDate('YYYYMMDD', 'L')      // Выводит "01/31/2016"
'20160131':convDate('YYYYMMDD', 'LL')     // Выводит "January 31, 2016"
'20160131':convDate('YYYYMMDD', 'LLLL')   // Выводит "Sunday, January 31, 2016 12:00 AM"
'20160131':convDate('YYYYMMDD', 'dddd')   // Выводит "Sunday"
1410715640:convDate('X', 'LLLL')          // Выводит "Sunday, September 14, 2014 7:27 PM"
Результат

На выходе дата, преобразованная в указанный формат.

8. Паттерны форматов даты

Часто используемые символы формата даты (см. документацию DayJS):

  • X: Unix-метка времени (в секундах), например 1360013296
  • x: Unix-метка времени в миллисекундах, например 1360013296123
  • YY: двузначный год, например 18
  • YYYY: четырёхзначный год, например 2018
  • M, MM, MMM, MMMM: месяц (число, двузначный, сокращённый, полное название)
  • D, DD: день (число, двузначный)
  • d, dd, ddd, dddd: день недели (число, минимальный, сокращённый, полное название)
  • H, HH, h, hh: час (24-часовой или 12-часовой формат)
  • m, mm: минута
  • s, ss: секунда
  • SSS: миллисекунда (3 цифры)
  • Z, ZZ: смещение UTC, например +05:00 или +0500
  • A, a: до полудня / после полудня (AM/PM)
  • Q: квартал (1–4)
  • Do: день месяца с порядковым суффиксом, например 1st, 2nd, …
  • Для других форматов см. полную документацию.
    Дополнительно доступны локализованные форматы на основе языка, например LT, LTS, L, LL, LLL, LLLL и т. д.