Перейти к основному содержанию Перейти к навигации по документам

Форматы даты

MODX написан на PHP и, как таковой, опирается на базовые функции даты PHP, например: strftime. Обсуждение здесь может быть довольно сложным, потому что strftime и strtotime функции развертывают схожие аргументы, но они не идентичны.

Обсуждение здесь относится в первую очередь к следующим областям содержимого:

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

Unix timestamps и отформатированные даты

В зависимости от источника и метода получения значения вы можете получить Unix timestamps или отформатированную дату. Unix timestamps распознается как большое целое число (представляющее количество секунд с 1 января 1970 года).

В MODX date output modifier, который используется для форматирования дат с использованием PHP strftime() функции, ожидает unix timestamp. Чтобы преобразовать форматированную дату в unix timestamps, вы будете использовать модификатор вывода strtotime.

Поэтому, если значение, скажем [[*madeon]], возвращает отформатированную дату, вам необходимо сначала преобразовать ее в unix timestamp с помощью [[*madeon:strtotime]], прежде чем вы сможете отформатировать ее с помощью date , но если значение немедленно возвращает unix timestamp, вы можете пропустить это.

Общие примеры

Невозможно привести все возможные примеры, но вот несколько распространенных способов форматирования дат с использованием выходных фильтров MODX.

Пример вывода Параметры фильтра
Thu Apr 14, 2011 [[*createdon:strtotime:date=`%a %b %d, %Y`]]
18 April 2011 [[*createdon:strtotime:date=`%d %B %Y`]]
Monday, April 18, 2011 [[*createdon:strtotime:date=`%A, %B %d, %Y`]]
2011-04-18 [[*createdon:strtotime:date=`%Y-%m-%d`]]
Зависит от конфигурации [[*createdon:strtotime:date=`Y-m-d`]]

Все параметры

Модификатор вывода данных внутренне выполняет Функция PHP strftime, поэтому вся документация о strftime относится и к модификатору вывода даты.

Чтобы изменить язык, используемый модификатором вывода date (например, для названия дней и месяцев), настройте locale system setting в MODX соответственно.

Код Отображение Пример
%a Краткое название дня недели Вск
%A Полное название дня недели Воскресенье
%b Краткое название месяца Янв
%B Полное название месяца Январь
%c Местная дата и время Ср янв 7 00:22:10 2010
%C Век (год делится на 100, диапазон от 00 до 99) 20
%d День месяца (с 01 по 31) 03
%D То же, что и %m/%d/%y 04/29/10
%e День месяца (с 1 по 31) 3
%H Час (в 24-часовом формате) 00-23
%I Час (в 12-часовом формате) 01-12
%l (в нижнем регистре L) Час в 12-часовом формате с пробелом, предшествующим одной цифре 1-12
%j День года От 001 до 366
%m Месяц От 01 до 12
%M Минута От 00 до 59
%n Символ новой строки \n
%P до или после полудня am
%p До или после полудня AM
%r То же, что и %I:%M:%S %p 08:23:11 PM
%R То же, что и %H:%M 23:11
%S Секунда 00 to 59
%t Символ табуляции \t
%T То же, что и %H:%M:%S 26:12:27
%u День недели (понедельник=1) 01 to 07
%w День недели (воскресенье=0) 00 to 06
%x Только дата 01/25/09
%X Только время 02:58:12
%y Двузначный год 09
%Y Четырехзначный год 2010
%Z или %z Смещение часового пояса или название -005 или EST
%% Буквальный символ% %

Примечание о совместимости сервера

Не все серверы поддерживают все параметры форматирования, в частности, в Windows «%e» не поддерживается, а «%z» и «%Z» возвращают имя часового пояса вместо смещения. На Mac %P не поддерживается.