Вывод дат в шаблонах Cotonti

Rating based on reviews:
Total stars received: 0
Total reviews: 0
Average rating: 0
Filed under: User Blog

1. Вывод дат в шаблонах

По умолчанию формат отображения дат и времени внутри Cotonti уже настроен. В большинстве случаев этого будет достаточно. Тем не менее, у вас есть возможность изменить формат вывода. Сделать это можно двумя способами:

  1. настроить формат вывода конкретного элемента в шаблоне;
  2. настроить (изменить) формат отображения глобально для всей системы.

Рассмотрим сначала первый вариант — вам необходимо изменить формат вывода даты в определенном [месте] шаблоне. Как правило все метки даты-времени внутри системы храняться в формате UNIX-времени (по сути счетчик количества секунд прошедших с  1 января 1970 года). Это удобный для внутреннего хранения и сравнения формат, который позволяет быстро и удобно вывести дату в нужном, человеко-читаемом формате. Для конвертирования такоей метки даты-времени в читаемый формат в PHP существует функция date(), однако она не учитывает язык конечного пользователя. Для решения этой проблемы в Cotonti есть функция «обертка» cot_date(). Перейдем теперь к примеру. Предположим мы имеем какой-либо тег содержащий метку времени, например — PAGE_ROW_DATE_STAMP. Используем cot_date() как обратный вызов (из шаблона):

{PAGE_ROW_DATE_STAMP|cot_date('d-m-Y', $this)}

Передаем значение PAGE_ROW_DATE_STAMP в функцию и предполагаем вывод в формате `d-m-Y` (для понимания сокращений в формате смотри описание функции date()).

Замечание: Функция принимает 3 параметра: первый (обязательный параметр) задает строку формата, второй — метку времени, третий — использовать ли временную зону пользователя.

Кроме возможности указать формат в ручную, в системе есть ряд предопределенных заранее форматов. Эти форматы определены на уровне системных языковых файлов (main.*.lang.php) и поэтому могут учитывать некоторые национальные особенности отображания дат для того или иного языка. Хранятся эти определения в массиве $Ldt. При проектировании своих расширений рекомендуется использовать именно эти готовые форматы.  Например:

{PAGE_ROW_DATE_STAMP|cot_date('date_full', $this)}

Ниже приведен список всех предопределенных форматов (примеры даны для руcского RU языкового файла):

NameFormatExample
date_fulld.m.Y13.02.2009
date_mediumm.Y02.2009
date_shortd.m13.02
date_textd F Y13 февраля 2009
date_fulltextl, d F YПятница, 13 февраля 2009
time_fullH:i:s23:31:30
time_mediumG:i23:31
time_shorti:s31:30
time_textg:i A11:31 PM
time_fulltextg:i:s A11:31:30 PM
datetime_fulld.m.Y H:i:s13.02.2009 23:31:30
datetime_mediumd.m.Y H:i13.02.2009 23:31
datetime_shortd.m H:i13.02 23:31
datetime_textd F Y H:i13 февраля 2009 23:31
datetime_fulltextl, d F Y H:iПятница, 13 февраля 2009 23:31
week_fullo-\WW2009-W07 *
week_medium\WWW07
week_short\WW-NW07-5
week_text\WW, lW07, Пятница
week_fulltexto-\WW, l2009-W07, Пятница

* если номер недели (ISO) относится к предыдущему или следующему году — будет отображен соотв. год. дополнительно / еще примеры

{PHP.pag.page_date|cot_date('l jS F Y h:i:s A', $this)}
{PHP.pag.pcot_updated|cot_date('datetime_full', $this)}
{PHP.item.item_updated|cot_build_timeago()}
{PAGE_DATE_STAMP|cot_date('c', $this)}
{PAGE_DATE_STAMP|cot_date('l jS F Y h:i:s A', $this)}
{PAGE_DATE_STAMP|cot_date('xxx', $this)}

"XXX" берем отсюда

 

Возвращает строку даты, преобразованной согласно переданному формату.

 

 

Список параметров

object

Только для процедурного стиля: объект DateTime, возвращаемый date_create().

format

Шаблон результирующей строки (string) с датой. Смотрите параметры форматирования ниже. Также существует несколько предопределённых констант даты/времени, которые могут быть использованы вместо этих параметров. Например: DATE_RSS заменяет шаблон 'D, d M Y H:i:s'.

В параметре format распознаются следующие символы
Символ в строке formatОписаниеПример возвращаемого значения
День------
dДень месяца, 2 цифры с ведущим нулёмот 01 до 31
DТекстовое представление дня недели, 3 символаот Mon до Sun
jДень месяца без ведущего нуляот 1 до 31
l (строчная 'L')Полное наименование дня неделиот Sunday до Saturday
NПорядковый номер дня недели в соответствии со стандартом ISO 8601от 1 (понедельник) до 7 (воскресенье)
SАнглийский суффикс порядкового числительного дня месяца, 2 символаst, nd, rd или th. Применяется совместно с j
wПорядковый номер дня неделиот 0 (воскресенье) до 6 (суббота)
zПорядковый номер дня в году (начиная с 0)От 0 до 365
Неделя------
WПорядковый номер недели года в соответствии со стандартом ISO 8601; недели начинаются с понедельникаНапример: 42 (42-я неделя года)
Месяц------
FПолное наименование месяца, например, January или Marchот January до December
mПорядковый номер месяца с ведущим нулёмот 01 до 12
MСокращённое наименование месяца, 3 символаот Jan до Dec
nПорядковый номер месяца без ведущего нуляот 1 до 12
tКоличество дней в указанном месяцеот 28 до 31
Год------
LПризнак високосного года1, если год високосный, иначе 0.
oНомер года в соответствии со стандартом ISO 8601. Имеет то же значение, что и Y, кроме случая, когда номер недели ISO (W) принадлежит предыдущему или следующему году; тогда будет использован год этой недели.Примеры: 1999 или 2003
XРасширенное полное числовое представление года, не менее 4 цифр, с - для годов до нашей эры и + для годов нашей эры.Примеры: -0055, +0787, +1999, +10191
xРасширенное полное числовое представление, если требуется или стандартное полное числовое представление, если возможно (например, Y). Не менее четырёх цифр. Для годов до нашей эры указан префикс -. У годов после (и включая) 10000 префикс +.Примеры: -0055, 0787, 1999, +10191
YПолное числовое представление года, не менее 4 цифр, с - для годов до нашей эры.Примеры: -0055, 0787, 1999, 2003, 10191.
yНомер года, 2 цифрыПримеры: 99, 03
Время------
aAnte meridiem (лат. "до полудня") или Post meridiem (лат. "после полудня") в нижнем регистреam или pm
AAnte meridiem или Post meridiem в верхнем регистреAM или PM
BВремя в формате Интернет-времени (альтернативной системы отсчёта времени суток)от 000 до 999
gЧасы в 12-часовом формате без ведущего нуляот 1 до 12
GЧасы в 24-часовом формате без ведущего нуляот 0 до 23
hЧасы в 12-часовом формате с ведущим нулёмот 01 до 12
HЧасы в 24-часовом формате с ведущим нулёмот 00 до 23
iМинуты с ведущим нулёмот 00 до 59
sСекунды с ведущим нулёмот 00 до 59
uМикросекунды. Учтите, что date() всегда будет возвращать 000000, т.к. она принимает целочисленный (int) параметр, тогда как DateTime::format() поддерживает микросекунды, если DateTime создан с ними.Например: 654321
vМиллисекунды. Замечание такое же как и для u.Пример: 654
Часовой пояс------
eИдентификатор часового поясаПримеры: UTC, GMT, Atlantic/Azores
I (заглавная i)Признак летнего времени1, если дата соответствует летнему времени, 0 в противном случае.
OРазница с временем по Гринвичу без двоеточия между часами и минутамиНапример: +0200
PРазница с временем по Гринвичу с двоеточием между часами и минутамиНапример: +02:00
pТо же, что и P, но возвращает Z вместо +00:00 (доступен, начиная с PHP 8.0.0)Например: Z или +02:00
TАббревиатура часового пояса, если известна; в противном случае смещение по Гринвичу.Примеры: EST, MDT, +05
ZСмещение часового пояса в секундах. Для часовых поясов, расположенных западнее UTC, возвращаются отрицательные числа, а для расположенных восточнее UTC - положительные.от -43200 до 50400
Полная дата/время------
cДата в формате стандарта ISO 86012004-02-12T15:19:21+00:00
rДата в формате » RFC 222/» RFC 5322Например: Thu, 21 Dec 2000 16:01:07 +0200
UКоличество секунд, прошедших с начала Эпохи Unix (1 января 1970 00:00:00 GMT)Смотрите также time()

Любые другие символы, встреченные в строке-шаблоне, будут выведены в результирующую строку без изменений. Z всегда возвращает 0 при использовании gmdate().

Замечание:

Поскольку рассматриваемая функция принимает в качестве параметра временные метки типа int, форматирующий символ u будет полезен только при использовании функции date_format() и пользовательских меток времени, созданных с помощью функции date_create().

 

 

Возвращаемые значения

Возвращает строку с отформатированной датой в случае успешного выполнения.

 

Помощь, поддержка, консультации, доработки сборки биржи услуг на Cotonti заказать можно по контактам:
Email: [email protected]
Skype: webitproff
Telegram: webitproff


Reviews

No reviews yet


Comments (0)

No comments yet
Only registered users can post new comments

Similar pages

PrjMap Вывод проектов на общей карте в виде меток
1 PrjMap Вывод проектов на общей карте в виде меток - плагин для сборки сайта фриланс биржи на Cotonti Используя Google
User Blog • 2020-07-17 05:15 webitproff
Cotonti - Redirect в шаблонах .tpl
2 Если нужно, чтобы, при попытке обращения к определенным ресурсам сайта не авторизованного пользователя отправить на
User Blog • 2020-07-17 05:15 webitproff
TPL - список доступных тегов в шаблонах
3 Шаблоны Cotonti и фриланс-биржи. Список доступных тегов и блоков в шаблоне на странице модуля или плагина.
User Blog • 2020-07-17 05:15 webitproff
Вывод дат в шаблонах Cotonti (Форматы и примеры в тегах)
4 Вывод дат в шаблонах CotontiНастройка формата отображения: локально и глобальноВ системе Cotonti все даты внутри базы
Примеры использования тегов для вывода дат разных форматов в шаблонах
5 Примеры использования стандартных форматов в шаблонахНиже приведены примеры шаблонных тегов для каждого

Content author

webitproff

Offline

Sodium Carbonate

Last logged: 2026-07-19 01:57

  • Чем могу помочь?

    Оказываю весь спектр услуг по CMF Cotonti. Разработка открытых и закрытых корпоративных интернет порталов, небольших социальных сетей, торговые площадки, маркетплейсы, биржи фриланса, каталоги товаров оптовых поставщиков, интернет-магазин под заказ, чтобы делать совместные покупки и групповые совместные продажи от имени нескольких продавцов.

  • Разработки на GitHub бесплатно
    • Page published: 2020-07-17 05:15
    • Last update: 2026-02-27 10:13