Вывод даты в 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 будет выводить уже отформатированную дату по-русски.

Метки:

Автор будет признателен, если Вы поделитесь ссылкой на статью, которая Вам помогла:
BB-код (для вставки на форум)

html-код (для вставки в ЖЖ, WP, blogger и на страницы сайта)

ссылка (для отправки по почте)

Комментарии (4) к записи “Вывод даты в modx - форматируем дату по-русски в php”

  1. Avgust сообщает :

    >1< / a >..

    no more…

  2. Анатолий сообщает :

    Спасибо и низкий поклон )

  3. White сообщает :

    Спасибо. Помогло. Мне нужно было для JOT

    Если кому нужно

    вызов сниппита [[rus_date?&d=[+comment.createdon:date=`%B`+]]]

    содержание сниппита:

  4. BOLVERIN сообщает :

    лучше добавить проверку на наличие pub_date и если ее нету то брать documentObject[’createdon’]

Добавить комментарий