Modx revo вывести дату публикации

Вывод дат в MODX Revolution

У ресурса в MODX Revolution есть несколько дат для отображения их на сайте:

  • createdon — дата создания
  • publishedon — дата публикации
  • editedon — дата редактирования
  • deletedon — дата удаления
  • unpub_date — дата отмены публикации

Для вывода дат на странице можно использовать стандартные модификаторы и модификаторы fenom

Стандартные модификаторы

Модификатор Результат
[[*createdon:strtotime:date=`%a %b %e, %Y`]] Вс дек 15, 2019
[[*createdon:strtotime:date=`%e %B %Y`]] 15 Декабрь 2019
[[*createdon:strtotime:date=`%A, %B %e, %Y`]] Воскресенье, Декабрь 15, 2019
[[*createdon:strtotime:date=`%d.%m.%Y`]] 15.12.2019

Вывод даты в шаблоне pdoResources осуществляется без модификатора strtotime

При стандартный настройках MOX выводит название дней недели и месяцев на английском языке. Для руссификации добавляем в ситемных настройках русскую локаль, ключу locale присваиваем значение ru_RU.UTF-8

Полное название месяца выводится в именительном падеже, для родительного падежа напишем свой сниппет назвем его rusDate

Возможные параметры для вывода дат:

Код Описание Вывод
%a Короткое наименование дня недели Sun
%A Полное наименование дня недели Sunday
%b Короткое наименование месяца Jan
%B Полное наименование месяца January
%c Локальная дата и время сервера Wed Jan 7 00:22:10 2010
%C Век 20
%d День месяца (от 01 до 31) 04
%D Аналогично %m/%d/%y 04/29/10
%e День месяца (от 1 до 31) 3
%H Часы () 00–23
%I (заглавная i) Часы () 01–12
%l (нижний регистр L) Часы () 1–12
%j Номер дня года от 001 до 366
%m Месяц от 01 до 12
%M Минута от 00 до 59
%S Секунды от 00 до 59
%u День недели (Понедельник = 1) от 1 до 7
%w День недели (Воскресенье = 0) от 0 до 6
%x Аналогично %m/%d/%y 01/25/09
%X Аналогично %I:%M:%S 02:58:12
%y Последние две цифры года 09
%Y Год, четырехзначно 2010
%Z или %z Смещение часового пояса или наименование -005 или EST
%% Литерал % %

Модификаторы Fenom

Модификатор Результат
<$_modx->resource.publishedon | date_format : «%a %b %e, %Y»> Вс дек 15, 2019
<$_modx->resource.publishedon | date_format : «%e %B %Y»> 15 Декабрь 2019
<$_modx->resource.publishedon | date_format : «%A, %B %e, %Y»> Воскресенье, Декабрь 15, 2019
<$_modx->resource.publishedon | date_format : «%d.%m.%Y»> 15.12.2019

Вывод даты в шаблоне pdoResources

Так же возможно вывод даты чере функцию date

Возможные параметры для вывода дат:

Источник

Форматирование даты и времени в MODX Revolution на русском

MODX написана на языке программирования PHP, поэтому для вывода дат используются функции PHP strtotime и strftime. В основном взаимодействие с датами ограничивается следующими стандартными полями ресурса (createdon, publishedon, editedon и т.д.)

Поля ресурсов с выводом даты

В основном взаимодействие с датами ограничивается следующими стандартными полями ресурса:

  • createdon — дата создания;
  • publishedon — дата публикации;
  • editedon — дата редактирования;
  • unpub_date — дата отмены публикации;
  • deletedon — дата удаления.

Помимо стандартных полей можно создать TV-поле с типом ввода дата.

Примеры вывода даты

Пример Вывод
[ [*createdon:strtotime:date=`%a %b %e, %Y`]] Fri Jan. 01, 2016
[ [*createdon:strtotime:date=`%e %B %Y`]] 01 January 2016
[ [*createdon:strtotime:date=`%A, %B %e, %Y`]] Friday, January 01, 2016
[ [*createdon:strtotime:date=`%d.%m.%Y`]] 01.01.2016

Вывод даты сниппетами

Некоторые сниппеты по-разному обрабатывают дату, к примеру, в шаблонах (плейсхолдерах) pdoResources функция strtotime не нужна, т. е. вывод будет таким:

В getResources же — нужна, вызов для getResources будет уже таким:

Русский язык и мультиязычность

В случаях, когда требуется выводить русские названия месяцев или дней недели, нужно в «Системных настройках» у ключа под названием locale задать ru_RU.UTF8, соответственно, для нужных языковых контекстов задаем свой, например, для английской версии сайта задаем en_US.UTF8.

Однако полный месяц даты на русском будет выводиться в именительном падеже, например, «01 Январь 2018», для того, чтобы перевести месяц в родительный падеж «01 Января 2016» можно использовать сниппет: [ [+publishedon:dateRU]]

Сам код сниппета dateRU:

‘Января’,
’02’ => ‘Февраля’,
’03’ => ‘Марта’,
’04’ => ‘Апреля’,
’05’ => ‘Мая’,
’06’ => ‘Июня’,
’07’ => ‘Июля’,
’08’ => ‘Августа’,
’09’ => ‘Сентября’,
’10’ => ‘Октября’,
’11’ => ‘Ноября’,
’12’ => ‘Декабря’
);

$d = $input;
$month = strftime(«%m»,$d);
$year = strftime(«%Y»,$d);
$day = strftime(«%d»,$d);
$month = $month_arr[$month];

return «$day $month $year»;
?>

Если же после форматирования вместо русского формата даты выводится английская, то создайте сниппет setLocale и вставьте код:

После вставьте этот сниппет в начало шаблона, где нужно выводить форматирование даты. Если русская дата отображается вопросиками, проверьте кодировку сайта, должна быть такой же как и в базе (желательно использовать UTF-8).

Источник

MODX. Даты и их форматирование в MODX

Отредактировано: 15 Декабря 2019

В стандартных ресурсах MODX предусмотрены следующие плейсхолдеры с датами:

  • createdon — дата создания;
  • deletedon — дата удаления;
  • editedon — дата последнего редактирования;
  • publishedon — дата когда ресурс был опубликован;
  • pub_date — дата когда ресурс должен появиться в публикации;
  • unpub_date — дата снятия с публикации.

Выведем дату редактирования текущего ресурса в формате день, месяц прописью, год:

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

Если возникла проблема с правильностью отображения даты, попробуйте преобразовать с помощью модификатора :strtotime

Формат вывода даты задается с использованием функции strftime.

strftime — форматирует текущую дату / время с учетом текущих настроек локали.

Параметры функции strftime

format Описание Пример возвращаемых значений
День
%a Сокращенное название дня недели От Sun до Sat
%A Полное название дня недели От Sunday до Saturday
%d Двухзначное представление дня месяца (с ведущими нулями) От 01 до 31
%e День месяца, с ведущим пробелом, если он состоит из одной цифры. На Windows реализован не так, как описано. Подробнее смотрите ниже. От 1 до 31
%j Порядковый номер в году, 3 цифры с ведущими нулями От 001 до 366
%u Порядковый номер дня недели согласно стандарту ISO-8601 От 1 (понедельник) до 7(воскресенье)
%w Порядковый номер дня недели От 0 (воскресенье) до 6(суббота)
Неделя
%U Порядковый номер недели в указанном году, начиная с первого воскресенья в качестве первой недели 13 (для полной 13-й недели года)
%V Порядковый номер недели в указанном году в соответствии со стандартом ISO-8601:1988, счет начинается с той недели, которая содержит минимум 4 дня, неделя начинается с понедельника От 01 до 53 (где 53 указывает на перекрывающуюся неделю)
%W Порядковый номер недели в указанном году, начиная с первого понедельника в качестве первой недели 46 (для 46-й недели года, начинающейся с понедельника)
Месяц
%b Аббревиатура названия месяца, в соответствии с настройками локали От Jan до Dec
%B Полное название месяца, в соответствии с настройками локали От January до December
%h Аббревиатура названия месяца, в соответствии с настройками локали (псевдоним %b) От Jan до Dec
%m Двухзначный порядковый номер месяца От 01 (январь) до 12(декабрь)
Год
%C Двухзначный порядковый номер столетия (год, деленный на 100, усеченный до целого) 19 для 20-го века
%g Двухзначный номер года в соответствии со стандартом ISO-8601:1988 (см. %V) Пример: 09 для недели 6 января 2009
%G Полная четырехзначная версия %g Пример: 2009 для недели 3 января 2009
%y Двухзначный порядковый номер года Пример: 09 для 2009, 79для 1979
%Y Четырехзначный номер года Пример: 2038
Время
%H Двухзначный номер часа в 24-часовом формате От 00 до 23
%k Часы в 24-часовом формате, с пробелом перед одиночной цифрой От 0 до 23
%I Двухзначный номер часа в 12-часовом формате От 01 до 12
%l (строчная ‘L’) Час в 12-часовом формате, с пробелом перед одиночной цифрой От 1 до 12
%M Двухзначный номер минуты От 00 до 59
%p ‘AM’ или ‘PM’ в верхнем регистре, в зависимости от указанного времени Пример: AM для 00:31, PMдля 22:23
%P ‘am’ или ‘pm’ в зависимости от указанного времени Пример: am для 00:31, pmдля 22:23
%r То же что и «%I:%M:%S %p» Пример: 09:34:17 PM для 21:34:17
%R То же что и «%H:%M» Пример: 00:35 для 12:35 AM, 16:44 для 4:44 PM
%S Двухзначный номер секунды От 00 до 59
%T То же что и «%H:%M:%S» Пример: 21:34:17 для 09:34:17 PM
%X Предпочитаемое отображение времени в зависимости от локали, без даты Пример: 03:59:16 или 15:59:16
%z Смещение временной зоны относительно UTC. Не реализовано в Windows, подробности см. ниже. Пример: -0500 для US Eastern Time
%Z Аббревиатура временной зоны. Не реализовано в Windows, подробности см. ниже. Пример: EST для Eastern Time
Метки даты и времени
%c Предпочитаемое отображение даты и времени, в зависимости от текущей локали Пример: Tue Feb 5 00:45:10 2009 для 5 февраля 2009 00:45:10
%D То же что и «%m/%d/%y» Пример: 02/05/09 для 5 февраля 2009
%F То же что и «%Y-%m-%d» (обычно используется в метках времени баз данных) Пример: 2009-02-05 для 5 февраля 2009
%s Метка времени Эпохи Unix (то же что и функция time()) Пример: 305815200 для 10 сентября 1979 08:40:00
%x Предпочитаемое отображение даты, без времени Пример: 02/05/09 для 5 февраля 2009
Различное
%n Символ перевода строки («\n»)
%t Символ табуляции («\t»)
%% Символ процента («%»)

Если необходимо вывести месяц на русском полностью, или в формате не доступном на сервере, можно использовать подобный сниппет для преобразования:

Условное выражение с использованием тегов MODX:

Тоже самое но в сниппете:

Для установки даты через xPDO или для TV полей с типом data можно использовать следующие сущности:

  • today — будет установлена сегодняшняя дата.
  • now — текущая дата и время.
  • yesterday — вчера.
  • tomorrow — завтра.
  • + / — (любое число)h — почему-то в перепутанном порядке, +24h высчитывается как (сегодня — 24 часа), и наоборот со знаком минус.

Позвольте представиться, меня зовут Марина. Более 10 лет я занимаюсь обслуживанием сайтов и развитием интернет проектов. Если вы хотите избавиться от хлопот связанных с созданием и поддержкой сайта, тогда вы попали по адресу. При работе с сайтами я предоставляю качественные услуги, ориентируясь на ваши индивидуальные потребности. Для связи со мной воспользуйтесь формой обратной связи .

Источник

Читайте также:  Чем чистить посудомойку от плесени
Оцените статью