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

Вы можете использовать сравнение дат и времени, например, для попадания в рабочее время

salebot работает с датами в формате "dd.mm.yyyy", а с временем в формате "HH:MM" Время московское!

Переменные

Для работы с датами и временем вы можете использовать следующие переменные:

#{current_date} - текущая дата в формате dd.mm.yyyy #{next_day} - завтрашняя дата в формате dd.mm.yyyy. Удобно для отправки сообщения завтра. #{current_time} - московское время в формате hh:mm #{weekday} - день недели в виде числа, понедельник - 1, вторник -2

Операции

Сравнивать даты и время можно логическими операторами, так же как и числа.

"addDays": прибавляет к дате указанное количество дней. Для вычитания передайте отрицательное число. Пример: addDays(current_date, 20) или addDays('20.08.2019', -99)

"addMinutes" прибавляет к указанному времени количество минут. Для вычитания передайте отрицательное число. Пример: addMinutes(current_time, 20) или addMinutes('20:08', -30)

Либо вы можете напрямую прибавлять дни к датам и минуты ко времени.

'20.08.2019' -99 current_date + 20 current_time + 20 '20:08' -30

Сравнение

Сравнивать даты и время можно логическими операторами, так же как и числа.

Примеры: '01.09.2020' < '11.10.2020' '11.10.2020' >= current_date '09:00' < '11:50' '09:00' == '11:50' '11:50' > current_time

Проверка попадания в рабочее время или в нерабочее

Допустим компания работает с утра 9 до 6 вечера и не работает в субботу и воскресенье.

Все рекомендуется делать по шагам. Сначала поставим проверку попадания в рабочее время: current_time >= '9:00' AND current_time <= '18:00' По аналогии НЕ рабочее время: current_time < '9:00' OR current_time > '18:00'

Дальше добавим проверку не написали ли нам в выходные, для этого нам понадобится weekday: weekday != 6 AND weekday != 7

Соединим вместе. Условие, что написали в рабочее время: current_time >= '9:00' AND current_time <= '18:00' AND weekday != 6 AND weekday != 7 Противоположное условие, что написали НЕ в рабочее время: current_time < '9:00' OR current_time > '18:00' OR weekday == 6 OR weekday == 7

Пример