Вывод даты в modx - форматируем дату по-русски в php
Modx - система управления контентом (CMS). Иногда можно услышать о ней как о CMF.
В общем, форматируем дату в стиле “1 июня 2010 года”.
На php даже при установленной русской локали вывод даты в формате ‘d B Y’ выведет что-то вроде “1 Июнь 2010″. Родительный падеж придется делать самостоятельно.
<?php
function rus_date($d) { //$d - timestamp
$month = array(1=>'января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря');
return date('d ',$d).$month[(int)date('m',$d)].date(' Y года',$d);
}
?>
Как прикрутить вывод даты к modx? Как обычно - через одно место. Через сниппет. (вариант с phx тоже будет работать.. Если подключить PHx).
Создаем сниппет [[rus_date]] , в который помещаем очень похожий код:
<?php
$month = array(1=>'января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря');
$d = isset($d)?$d:$modx->documentObject['pub_date'];
return date('d ',$d).$month[(int)date('m',$d)].date(' Y года',$d);
?>
Вызов сниппета в документе - просто [[rus_date]]
Для форматирования даты по-русски при выводе в сниппете Ditto: в созданный чанк-шаблон в том месте, где нужно вывести дату вставляем
<p class="date">[[rus_date?&d=[+pub_date+]]]</p>
Ditto будет выводить уже отформатированную дату по-русски.
Метки: cms
>1< / a >..
no more…
Спасибо и низкий поклон )
Спасибо. Помогло. Мне нужно было для JOT
Если кому нужно
вызов сниппита [[rus_date?&d=[+comment.createdon:date=`%B`+]]]
содержание сниппита:
лучше добавить проверку на наличие pub_date и если ее нету то брать documentObject[’createdon’]