← К заметкам

Заметки

Как в БП сделать отрицательную разницу дат

Если нужна разница со знаком, важно определить направление: «дедлайн минус текущий момент» даёт отрицательное значение для прошедшего срока.

У datediff формат интервала передаётся третьим аргументом. Формат %r%a добавляет знак к полному числу дней:

{{=datediff({=Variable:StartDate}, {=Variable:EndDate}, "%r%a")}}

При обратном порядке дат меняется знак. %a — полные дни интервала; это не округление любой части суток вверх.

Если нужны именно часы или дробные сутки, расчёт по секундам в PHP — другой вариант. Учитывайте часовой пояс и переходы времени: календарный день не всегда равен ровно 86400 секундам. Выбор зависит от того, считает правило дни календаря или фактически прошедшее время.

Документация: Формулы бизнес-процессов · PHP: dateinterval.format.php.