Примеры использования стандартных форматов в шаблонах
Ниже приведены примеры шаблонных тегов для каждого предопределённого формата из языкового файла (массив $Ldt). В качестве источника timestamp используется тег {PAGE_DATE_STAMP} (дата создания страницы). Для списка страниц замените его на {LIST_ROW_DATE_STAMP}, для пользователей – на {USER_REGDATE_STAMP} и т.д.
| Формат | Пример тега (для страницы) | Результат (timestamp = 1234567890) |
| date_full | {PAGE_DATE_STAMP|cot_date('date_full', $this)} | 13.02.2009 |
| date_medium | {PAGE_DATE_STAMP|cot_date('date_medium', $this)} | 02.2009 |
| date_short | {PAGE_DATE_STAMP|cot_date('date_short', $this)} | 13.02 |
| date_text | {PAGE_DATE_STAMP|cot_date('date_text', $this)} | 13 февраля 2009 |
| date_fulltext | {PAGE_DATE_STAMP|cot_date('date_fulltext', $this)} | Пятница, 13 февраля 2009 |
| time_full | {PAGE_DATE_STAMP|cot_date('time_full', $this)} | 23:31:30 |
| time_medium | {PAGE_DATE_STAMP|cot_date('time_medium', $this)} | 23:31 |
| time_short | {PAGE_DATE_STAMP|cot_date('time_short', $this)} | 31:30 |
| datetime_full | {PAGE_DATE_STAMP|cot_date('datetime_full', $this)} | 13.02.2009 23:31:30 |
| datetime_medium | {PAGE_DATE_STAMP|cot_date('datetime_medium', $this)} | 13.02.2009 23:31 |
| datetime_short | {PAGE_DATE_STAMP|cot_date('datetime_short', $this)} | 13.02 23:31 |
| datetime_text | {PAGE_DATE_STAMP|cot_date('datetime_text', $this)} | 13 февраля 2009 23:31 |
| datetime_fulltext | {PAGE_DATE_STAMP|cot_date('datetime_fulltext', $this)} | Пятница, 13 февраля 2009 23:31 |
Примечания:
- Все примеры учитывают часовой пояс пользователя (параметр
usertimezone по умолчанию true). Если нужно вывести время без коррекции (серверное), добавьте , false в конце:
{PAGE_DATE_STAMP|cot_date('datetime_full', $this, false)} - Для других полей дат используйте соответствующие теги:
{PAGE_BEGIN_STAMP}, {PAGE_EXPIRE_STAMP}, {PAGE_UPDATED_STAMP},
{USER_LASTLOG_STAMP}, {COMMENT_ROW_DATE_STAMP} и т.д. - В списках (например,
list.tpl) теги обычно имеют префикс LIST_ROW_:
{LIST_ROW_DATE_STAMP|cot_date('date_full', $this)} - Если нужен только timestamp (целое число) для использования в JavaScript или дополнительных расчётах, используйте тег без фильтра:
{PAGE_DATE_STAMP} → 1234567890
Что означает число 1234567890?
Это Unix timestamp — количество секунд, прошедших с 1 января 1970 года 00:00:00 UTC (так называемая «эпоха Unix»).
Функция cot_date преобразует это число секунд в текстовую строку, что бы показать разные форматы вывода дат и времени в шаблонах Cotonti.
Конкретно 1234567890 соответствует:
По UTC: 13 февраля 2009 года, 23:31:30 (пятница).
В зависимости от часового пояса пользователя (например, UTC+3) эта же метка будет отображаться как 14 февраля 2009 года, 02:31:30.
В Cotonti все даты хранятся именно в таком виде — целыми числами. В базах данных вы увидите поля page_date = 1639236600, page_updated = 1704948992 и т.п. Эти числа не предназначены для чтения человеком напрямую; их преобразуют в привычные даты с помощью cot_date на этапе вывода в шаблоны.
Что такое timestamp?
Timestamp (временная метка) — это целое число, равное количеству секунд, прошедших с 1 января 1970 года 00:00:00 по всемирному времени (UTC). Например:
0 — это 1 января 1970 года, 00:00:00 UTC.86400 — это 2 января 1970 года, 00:00:00 UTC (потому что в сутках 86400 секунд).1639236600 — это 11 декабря 2021 года, 12:30:00 UTC.
Почему в примерах используется число 1234567890?
Число 1234567890 — это просто пример timestamp, который я выбрал для демонстрации. Оно удобно тем, что цифры идут по порядку, и его легко запомнить. Оно соответствует реальной дате 13 февраля 2009 года, 23:31:30 UTC, но для понимания механики это неважно. Главное, что это одно и то же число, которое функция cot_date() может превратить в разные строки в зависимости от формата.
Как это работает на реальных числах из вашей базы данных?
В вашем дампе есть такие timestamp:
1639236600 — дата создания страницы tasks-general.1699716120 — дата начала публикации.1704948992 — дата последнего обновления.
Для каждого из них вы можете использовать те же самые форматы, что и в примере. Например, если в шаблоне написать:
html
{PAGE_DATE_STAMP|cot_date('date_full', $this)} <!-- для timestamp 1639236600 получится 11.12.2021 -->
{PAGE_DATE_STAMP|cot_date('datetime_text', $this)} <!-- 11 декабря 2021 12:30 -->Примеры для timestamp = 1639236600:
| Формат | Тег в шаблоне | Результат |
| date_full | {PAGE_DATE_STAMP|cot_date('date_full', $this)} | 11.12.2021 |
| date_text | {PAGE_DATE_STAMP|cot_date('date_text', $this)} | 11 декабря 2021 |
| datetime_full | {PAGE_DATE_STAMP|cot_date('datetime_full', $this)} | 11.12.2021 12:30:00 |
| time_full | {PAGE_DATE_STAMP|cot_date('time_full', $this)} | 12:30:00 |
Вывод:
Число 1234567890 — это просто учебный пример. В реальном проекте вы будете подставлять в теги те timestamp, которые лежат в вашей базе данных (например, 1639236600). Результат будет соответствовать реальной дате вашей страницы, а не абстрактному примеру.