1. Главная страница
  2. ››
  3. Формулы
  4. ››
  5. Заменяем дату на «Завтра», «Сегодня» или «Вчера» - Upline Studio

Заменяем дату на «Завтра», «Сегодня» или «Вчера» - Upline Studio

Задачи

Автоматически заменять даты на «Завтра», «Сегодня» или «Вчера». Примеры результатов применения формулы:

  • Надпись с датой публикации "Сегодня в 15:23"
  • Дата изменения "Вчера в 22:15"

Формула

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 — это номер столбца (см. ниже)

Источник

Анализ работы формулы

Код представляет собой формулу, которая обрабатывает дату и определяет, является ли она сегодняшней, вчерашней или завтрашней датой. Если дата не относится к этим трём категориям, формула возвращает полную дату в формате ДД.ММ.ГГГГ и время в формате ЧЧ:ММ.

Вот подробное объяснение шагов:

1. date: toDate(var1): Этот шаг преобразует значение var1 в дату. Функция toDate() используется для преобразования строки или числа в дату.

1. day: 24*60*60*1000: Это представление одного дня в миллисекундах. Поскольку один день содержит 24 часа, каждый час содержит 60 минут, каждая минута содержит 60 секунд, а каждая секунда содержит 1000 миллисекунд, мы умножаем все эти значения, чтобы получить количество миллисекунд в одном дне.

1. today: now(): Этот шаг получает текущую дату и время.

1. dif: (toNumber(date) - toNumber(today)): Это вычисляет разницу в миллисекундах между date и today. Функция toNumber() используется для преобразования даты в число, что позволяет выполнить математические операции.

1. daysSince: floor(dif/day): Это делит dif (разницу в миллисекундах) на количество миллисекунд в одном дне (day), чтобы получить количество дней между date и today. Функция floor() используется для округления результата до ближайшего меньшего целого числа.

1. Далее формула проверяет значение daysSince и возвращает соответствующую строку. Если daysSince равно 0, это означает, что date это сегодня, и формула возвращает "Сегодня в " и время из date. Если daysSince равно -1, это означает, что date это вчера, и формула возвращает "Вчера в " и время из date. Если daysSince равно 1, это означает, что date это завтра, и формула возвращает "Завтра в " и время из date. Если daysSince не равно ни одному из этих значений, формуля возвращает полную дату и время из date .

Другие формулы Creatium

Logo Upline Studio Creatium

Наша команда Uplinestudio разрабатывает сайты под разные потребности клиентов. Одним из ключевых направлений в нашей разработке является создание сайтов на Creatium.

Оставить заявку

Работает на Creatium