Автоматически заменять даты на «Завтра», «Сегодня» или «Вчера». Примеры результатов применения формулы:
let ({
date: toDate(var1),
day: 24*60*60*1000,
today: now(),
dif: (toNumber(date) - toNumber(today)),
daysSince: floor(dif/day)
}, if (daysSince == 0, "Сегодня в " & substr(date, 11,5),
if (daysSince == -1, "Вчера в " & substr(date, 11,5),
if (daysSince == 1, "Завтра в " & substr(date, 11,5),
substr(date, 8, 2) & "." & substr(date, 5, 2) & "." & substr(date, 0, 4) & " " & substr(date, 11,5))
)))
"var1
" — это ваша дата в формате "2023-02-23 12:15"
Если у вас дата находится в БД, используйте table.current.f2 вместо var1, где f2 — это номер столбца (см. ниже)
Сайт: https://batvai.by/useful
Код представляет собой формулу, которая обрабатывает дату и определяет, является ли она сегодняшней, вчерашней или завтрашней датой. Если дата не относится к этим трём категориям, формула возвращает полную дату в формате ДД.ММ.ГГГГ и время в формате ЧЧ:ММ.
Вот подробное объяснение шагов:
date: toDate(var1)
: Этот шаг преобразует значение var1
в дату. Функция toDate()
используется для преобразования строки или числа в дату.
day: 24*60*60*1000
: Это представление одного дня в миллисекундах. Поскольку один день содержит 24 часа, каждый час содержит 60 минут, каждая минута содержит 60 секунд, а каждая секунда содержит 1000 миллисекунд, мы умножаем все эти значения, чтобы получить количество миллисекунд в одном дне.
today: now()
: Этот шаг получает текущую дату и время.
dif: (toNumber(date) - toNumber(today))
: Это вычисляет разницу в миллисекундах между date
и today
. Функция toNumber()
используется для преобразования даты в число, что позволяет выполнить математические операции.
daysSince: floor(dif/day)
: Это делит dif
(разницу в миллисекундах) на количество миллисекунд в одном дне (day
), чтобы получить количество дней между date
и today
. Функция floor()
используется для округления результата до ближайшего меньшего целого числа.
Далее формула проверяет значение daysSince
и возвращает соответствующую строку. Если daysSince
равно 0, это означает, что date
это сегодня, и формула возвращает "Сегодня в " и время из date
. Если daysSince
равно -1, это означает, что date
это вчера, и формула возвращает "Вчера в " и время из date
. Если daysSince
равно 1, это означает, что date
это завтра, и формула возвращает "Завтра в " и время из date
. Если daysSince
не равно ни одному из этих значений, формуля возвращает полную дату и время из date
.
Простой текст
Работает на Creatium