Работа с датами и временем в боте

Получаем и преобразовываем в нужный формат текущее время

Текущую дату и время мы можем получать с помощью хелпера:

 {{formatDate (now) "DD.MM.YYYY HH:mm" "ru"}}

Записываем компонентом Запись переменной значение в переменную Time. Поскольку нас интересует только время, в которое пришел пользователь в бота, то нужно удалить из хелпера дату и оставить только часы и минуты:

{{formatDate (now) "HH:mm" "ru"}}

Обрабатываем время и переводим на заданные экраны

Ставим на экран компонент Развилка. В поле Имя переменной, откуда развилка возьмёт значение указываем Time.

Регулярное выражение проще составить для первого интервала — с 10 до 19:
^1[0-8]\:[0-5][0-9]$

Добавляем это регулярное выражение в значение цели Развилки. Выбираем Регулярное выражение в Типе данных. Цель по умолчанию — перевод в интервал с 19 до 10.

Оформляем экраны с ответами бота. Готово.

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

{{formatDate (now) "DD.MM.YYYY" "ru"}}

Также существует хелпер для преобразования даты, введенной пользователем:

{{formatDate Date1 "DD.MM.YYYY" "ru"}}

Где Date1 — это переменная, куда записалась дата, которую прислал пользователь.

В боте это можно реализовать таким образом:

Прибавить к текущей дате один день можно с помощью хелпера:

{{addDate (formatDate now "DD.MM.YYYY HH:mm:ss" "RU") 1 "days" "DD.MM.YYYY HH:mm:ss"}}

Можно поменять 1 на нужное количество дней, которые прибавляются:

{{addDate (formatDate now "DD.MM.YYYY HH:mm:ss" "RU") 15 "days" "DD.MM.YYYY HH:mm:ss"}}

Если поменять "days" на "months" — прибавятся месяцы:

{{addDate (formatDate now "DD.MM.YYYY HH:mm:ss" "RU") 1 "months" "DD.MM.YYYY HH:mm:ss"}}

"weeks" — недели:

{{addDate (formatDate now "DD.MM.YYYY HH:mm:ss" "RU") 1 "weeks" "DD.MM.YYYY HH:mm:ss"}}

"years" — года:

{{addDate (formatDate now "DD.MM.YYYY HH:mm:ss" "RU") 1 "years" "DD.MM.YYYY HH:mm:ss"}}

"quarters" — кварталы:

{{addDate (formatDate now "DD.MM.YYYY HH:mm:ss" "RU") 1 "quarters" "DD.MM.YYYY HH:mm:ss"}}

Эти и другие варианты можно протестировать в песочнице:

Хелпер для вывода в бот месяца в виде слова

Обычно месяц в дате выводится в формате числа, но если нужно название месяца, можно использовать хелпер:

{{formatDate (now) "MMM" "ru"}}

Таким образом месяц выведется с большой буквы:

{{capitalize (formatDate (now) "MMM" "ru")}}

Как вывести день недели

День недели в виде порядкового номера можно вывести с помощью хелпера:

{{formatDate now "d" "ru"}}

В этом формате дни будут считаться от 0 до 6, где 0 — это воскресенье, 1 — понедельник и т.д.

Выводить дни недели в формате «пн», «вт» и т.д. поможет хелпер:

{{formatDate now "dd" "ru"}}

Так можно выводить дни недели полностью («понедельник», «вторник», и т. д.):

{{formatDate now "dddd" "ru"}}

Если хелпере заменить "ru" на "en", то названия дней недели будут выводиться на английском:

{{formatDate now "dddd" "en"}}

Дата будет преобразовываться в зависимости от того, в какой день недели зашел пользователь.

Информацию по другим видам форматирования даты можно взять отсюда

В начало ↑

Была ли статья полезна?

Да Нет