Выводятся даты в MODX Revo при помощи модификаторов phx аналогично функции PHP strftime. В основном взаимодействие с датами и временем ограничивается этими полями ресурса:
- createdon — дата создания;
- deletedon — дата удаления;
- editedon — дата последнего редактирования;
- publishedon — дата когда ресурс был опубликован;
- unpub_date — дата отмены публикации.
Типичные примеры
Параметры phx | Вывод на страницу |
---|---|
[[*createdon:strtotime:date=`%a %b %e, %Y`]] |
Thu Apr 14, 2012 |
[[*createdon:strtotime:date=`%e %B %Y`]] |
18 April 2012 |
[[*createdon:strtotime:date=`%A, %B %e, %Y`]] |
Monday, April 18, 2012 |
[[*createdon:strtotime:date=`%d.%m.%Y`]] |
18.04.2012 |
Примеры вывода дат на Fenom
MODX хранит данные в формате Timestamp, и для вывода их в человеческом виде, лучше использовать Fenom, например так:
{$publishedon | date : "d.m.Y"}
В зависимости от места место вывода, выводы будут отличаться.
1. Вывод непосредственно в шаблоне, будет выглядеть так: {$_modx->resource.editedon | date : "d.m.Y"}
2. В чанке, сниппете, так: {$editedon | date : "d/m/Y"}
Чтобы настроить нужный формат вывода даты, используем дополнительный параметр, где указываем что и как выводить.
"d/m/Y" -> 12/02/2017
"d.m.Y" -> 12.02.2017
"d.m.Y H:i:s" -> 12.02.2017 17:30:12
Больше параметров в таблице ниже.
Часто используемое
Вывод текущей даты: {'' | date :"d.m.Y"}
Вывод текущего года: {'' | date :"Y"}
— обычно используют в копирайте.
Вывод даты публикации в ресурсе: {$_modx->resource.publishedon | date : "d.m.Y"}
, в чанке, сниппете: {$publishedon | date : "d/m/Y"}
Fenom модификатор date_format
Данный модификатор форматирует дату согласно указанному формату strftime(). Даты могут быть переданы в виде временных меток unix, временных меток mysql или в виде любой строки, содержащей день, месяц и год, которую может обработать функция strftime().
{$date|date_format:$format = `%b %e, %Y`}
Формат по умолчанию: %b %e, %Y
.
{var $ts = time()}
{$ts|date_format:"%Y/%m/%d %H:%M:%S"} выведет 2022/02/08 21:01:43
{$ts|date_format:"-1 day"} выведет вчерашний день, например 2022/02/07 21:01:43
{var $date = "2022-12-08"}
{$ts|date_format:"%Y/%m/%d %H:%M:%S"} выведет 2022/12/08 00:00:00
{'2015-01-10 12:45' | date_format : '%d.%m.%Y'} // 10.01.2015
{'' | date_format : '%Y'} // текущий год
Fenom модификатор date
Модификатор date — форматирует даты через функцию date
. Если переменная пуста, будет получено текущее время.
{'2015-01-10 12:45' | date : 'd.m.Y'} // 10.01.2015
{'' | date : 'Y'} // текущий год
для получения даты +1 день используется формат согласно strftime()
{'+1 days' | date : 'Y-m-d'} // завтра
Мультиязычность — дата в MODx на русском
В случаях когда требуется выводить русские названия месяцев или дней недели, многие дилентанты — пишут сниппет, который перебирает из массива название англоязычного по ключу и переводят в рус формат. На самом деле делается это много проще: в настройках системы есть ключик под названием locale, ну соответственно для нужных контекстов просто задаем ru_RU.UTF-8 или для английской версии сайта en_US.UTF-8 или просто UTF-8.
Все возможные параметры
Код | Описание | Вывод |
---|---|---|
%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 | Часы ( 24-часовые, формат от 00 до 23 ) | 15 |
%I ( от i ) | Часы ( 12-часовые, формат от 01 до 12 ) | 09 |
%l ( от L ) | Часы ( 12-часовые, формат от 1 до 12 ) | 5 |
%j | День года по счету ( формат от 001 до 366 ) | 234 |
%m | Месяц в году по счету ( формат от 01 до 12 ) | 3 |
%M | Минута ( формат от 00 до 59 ) | 43 |
%n | Перенос строки | \n |
%p | am или pm | am или pm |
%P | AM или PM | AM или PM |
%r | Аналогично %I:%M:%S %p | 08:23:11 PM |
%R | Аналогично %H:%M | 23:11 |
%S | Секунды ( формат от 00 до 59 ) | 25 |
%t | Табуляция | \t |
%T | Аналогично %H:%M:%S | 26:12:27 |
%u | День недели ( Понедельник = 1, формат 1 до 7 ) | 3 |
%w | День недели ( Воскресенье = 0, формат 0 до 6 ) | 3 |
%x | Аналогично %m/%d/%y | 01/25/09 |
%X | Аналогично %I:%M:%S | 02:58:12 |
%y | Год, последние две цифры | 12 |
%Y | Год, четырех значно | 2012 |
%Z или %z | Смещение часового пояса или наименование | -005 или EST |
%% | Литерал % | % |