...

Вывод даты в строку по различному формату

Тема в разделе "Примеры сценариев", создана пользователем evgeneva, 7 окт 2021.

  1. evgeneva

    evgeneva Участник

    Типы данных TDatetime, TDate и TTime обладают методом format(), который помогает привести дату и время к нужному формату строки.
    Форматы по умолчанию:
    • TDate — YYYY-MM-DD,
    • TTime — HH:mm:ss,
    • TDatetime — YYYY-MM-DDTHH:mm:ss.SSSZ,
    где YYYY — год, MM — месяц с ведущим нулем, DD — день с ведущим нулем, HH — часы в 24-часовой системе, mm — минуты, ss — секунды, SSS — доли секунды, T —префикс времени, Z — временная зона.

    Пример:
    Код:
    
    const date = new TDate(202149);
    const 
    formatDate date.format(); // «2021-04-09»

    const time = new TTime(15302010);
    const 
    formatTime time.format(); //"15:30:20"

    const datetime = new Datetime() // текущая дата и время
    const formatDatetime datetime.format() // "2021-04-09T12:46:57+04:00"
    Если задать изначально неверный формат переменной типа Дата/время, то будет показана ошибка:
    Код:
    
    const datetime = new Datetime("qwerty");
    const 
    formatDatetime datetime.format() //"Error: Invalid datetime \"qwerty\". Bring to \"YYYY-MM-DDTHH:mm:ss.SSSZ\" format"
    Также в строке форматирования можно использовать синтаксис на основе ключей. Наиболее часто используемые ключи для даты и времени, с помощью которых можно формировать шаблон вывода, приведены в таблице ниже. Необходимо учитывать, что нельзя использовать ключи времени для формата переменной типа Дата, а ключи даты — для типа Время. В этом случае сценарий завершится с ошибкой. Для типа Дата/время подходит весь набор ключей.
    Больше ключей можно найти в документации Moment.js.

    Примеры использования:
    Код:
    
    date.format("y.M.D, d день недели");// «2021.4.9, 5 день недели»
    date.format("DDDo день года, Qo квартал, wo неделя года");// «99th день года, 2nd квартал, 15th неделя года»
    date.format("Сегодня dddd"); //"Сегодня Friday"
    date.format("Do MMMM YYYY"); //"9th April 2021"
    time.format("h:mmA"); //"3:30PM"
    datetime.format("dddd, Do MMMM YYYY, h:mm:ss a"// "Friday, 9th April 2021, 4:25:51 pm"
    Аналогично можно использовать метод форматирования format() в блоке «Виджет-код»:
    Код:
    
    <%= Context.data.dateToday.format("DD-MM-YYYY") %>
    
    
    О форматах вывода даты и времени в шаблоне документа читайте в справке ELMA365.