Настройка шаблона вывода красивых дат в Битрикс

В этой статье речь пойдет о том, как настроить формат вывода даты в нестандартном виде. Наверняка кому-нибудь попадался привередливый заказчик, которому то цвет не нравится, то буква слишком корявая или дата выводится недостаточно красиво. Так вот, решение есть всегда, ну а в данной статье я опишу простое решение для одной из таких проблем – отображения красивых дат.

Давайте, для того, чтобы вникнуть в тему статьи рассмотрим пример поставленных требований:

Сегодня 16 августа 2020 года. Необходимо, чтобы у опубликованной сегодня новости выводилось – 12:00 сегодня, а у новости, которая вышла вчера, вывелось, что-то вроде – 17:00 вчера. А если новость вышла в другой день текущего года, важно вывести только день и месяц, ну а если новость вышла в прошлом году, то выводить уже и день, месяц и год.

Коротко говоря, вот такие требования к шаблону даты для отображения:

  • Сегодня: 12:01 сегодня
  • Вчера: 18:30 вчера
  • Другая дата в текущем году: 10 января
  • Другой год: 12 мая 2019

Как бы вы решали такую задачу?

Функция FormatDate

К счастью, такую задачу в Битриксе можно решить с помощью функции FormatDate. Если вы часто пишите код, то наверняка с ней встречались, правда? Данная функция является фактически расширенной оберткой над функцией date и дает немало интересных возможностей, которые избавляют от написания велосипедов.

Так вот, чтобы решить такую веселую задачу из требований, всего-то и надо, что передать в качестве первого параметра в функцию FormatDate массив параметров, а дальше происходит магия.

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

Листинг функции

С помощью использования такой функции во всех шаблонах сайта я заменил на всем сайте отображение даты.