Ситуация
Для MODx Evolution и Evolution CMS существуют сниппет Jot для приёма и вывода комментариев на сайте. Однако окончательный вид с уже допиленой вёрсткой блока комментария выводит дату в непортебном виде для российского пользователя.
По большому счёту, можно забить, но....
Задача: применить решение для устранения непотребного формата вывода даты.
Решение
К сожалению, поступить по аналогии, как в случае со сниппетом Ditto, не получится. Оговорюсь, что при инициализации Ditto достаточно вписать &dateFormat=`%d.%m.%Y`, а в чанке добавить плэйхолдер [ + date + ]
1. Открываем нужный файл или чанк
Продемонстрирую фрагмент кода из файла chunk.comment.inc.html (отдельный чанк создавать поленился, если откровенно), который требует правки. Он выделен синим на картинке ниже для наглядности.
Вывод названия дня недели вовсе не обязателен, а название месяца на латинице необходимо вывести в виде его порядкового номера с ведущим нулём. Точное время, когда комментарий был написан корректировки не требует, поэтому оставим его без изменений.
2. Смотрим в таблицу
Вид | Описание |
---|---|
%a | сокращенное название дня недели в текущей локали |
%A | полное название дня недели в текущей локали |
%b | сокращенное название месяца недели в текущей локали |
%B | полное название месяца недели в текущей локали |
%c | предпочтительный формат даты и времени в текущей локали |
%C | столетие (год, деленный на 100 и огругленный до целого, от 00 до 99) |
%d | день месяца в виде десятичного числа (от 01 до 31) |
%D | аналогично %m/%d/%y |
%e | день месяца в виде десятичного числа, если это одна цифра, то перед ней добавляется пробел (от ' 1' до '31') |
%g | подобно %G, но без столетия. |
%G | Год, 4-значное число, соответствующее номеру недели по ISO (см. %V). Аналогично %Y, за исключением того, что если номер недели по ISO соответствует предыдущему или следующему году, используется соответствующий год. |
%h | аналогично %b |
%H | номер часа от 00 до 23 |
%I | номер часа от 01 до 12 |
%j | номер дня в году (от 001 до 366) |
%m | номер месяца (от 01 до 12) |
%M | минуты |
%n | символ "\n" |
%p | "am" или "pm", или соответствующие строки в текущей локали |
%r | время в формате a.m. или p.m. |
%R | время в 24-часовом формате |
%S | секунды |
%t | символ табуляции ("\t") |
%T | текущее время, аналогично %H:%M:%S |
%u | номер дня недели от 1 до 7, где 1 соответствует понедельнику |
%U | порядковый номер недели в текущем году. Первым днем первой недели в году считается первое воскресенье года. |
%V | Порядковый номер недели в году по стандарту ISO 8601:1988 от 01 до 53, где 1 соответствует первой неделе в году, в которой как минимум 4 дня принадлежат этому году. Первым днем недели считается понедельник. (Используйте %G or %g для определения соответствующего года) |
%W | порядковый номер недели в текущем году. Первым днем первой недели в году считается первый понедельник года. |
%w | номер дня недели, 0 соответствует воскресенью |
%x | предпочтительный формат даты без времени в текущей локали |
%X | предпочтительный формат времени без даты в текущей локали |
%y | год без столетия (от 00 до 99) |
%Y | год, включая столетие |
%Z | временная зона в виде смещения, аббривеатуры или полного наименования |
%% | символ "%" |
Итоговый предпочтительный формат исключит необходимость склонения названия месяца и дополнительной настройки языковой локализации.
3. Вносим коррективы
Убираем "a%", а вместо "B%", отвечающего за вывод сокращённого названия месяца, вписываем "m%". Убираем лишние пробелы и разделяем точками.
Получаем в результате
Ни в коем случае не утверждаю, что это - единственный правильный вариант. В частности использование сниппета Jot на Evolution CMS вообще не рекомендуется. Однако данная реализация протестирована и без нареканий работает.