Формат даты в Joomla
Дата создания статьи храниться в таблице jos_content (ячейка "created") в БД Joomla в таком виде - 2009-12-09 00:10:28, такой формат как правило не особо радует глаз посетителя. Поэтому для ее отображения в более красивом виде используеться ее обработка, а затем уже вывод на страницу.
В Joomla доступны следующие форматы даты:
- DATE_FORMAT_LC - выведет: "Понедельник, 15 Февраль 2010"
- DATE_FORMAT_LC1 - выведет: "Понедельник, 15 Февраль 2010"
- DATE_FORMAT_LC2 - выведет: "15.02.10 02:18"
- DATE_FORMAT_LC3 - выведет: "15 Февраль 2010"
- DATE_FORMAT_LC4 - выведет: "15.02.10"
Для вывода даты в любом из вышеперечисленных форматов, необходимо дату из БД передать на обработку следующим образом:
Класс отвечающий за обработку даты подключаеться следующим образом:
require_once (JPATH_SITE.DS.'libraries'.DS.'joomla'.DS.'html'.DS.'html.php');
$lists[$i]->date = JHTML::_('date', $row->created, JText::_('DATE_FORMAT_LC'));
Но это так на всякий случай ;) тк в модулях JHTML доступен.
В файле имя сайта\language\ru-RU\ru-RU.ini, вы можете увидить какие форматы даты доступны в Joomla:
DATE_FORMAT_LC=%d.%m.%Y – 23.02.2011
DATE_FORMAT_LC1=%d.%m.%Y– 23.02.2011
DATE_FORMAT_LC2=%d.%m.%Y %H:%M – 23.02.2011 13:20
DATE_FORMAT_LC3=%d %B %Y – 23 Февраля 2011
DATE_FORMAT_LC4=%d.%m.%y – 23.02.11
По умолчанию в материалы выводятся в формате LC2.
Или форат даты времени задается аналогично стандартной функции PHP DATE()
Шаблон результирующей строки (string) с датой. 'D, d M Y H:i:s'.
Символ в строке format | Описание | Пример возвращаемого значения |
---|---|---|
День | --- | --- |
d | День месяца, 2 цифры с ведущим нулём | от 01 до 31 |
D | Текствое представление дня недели, 3 символа | от Mon до Sun |
j | День месяца без ведущего нуля | от 1 до 31 |
l (строчная 'L') | Полное наименование дня недели | от Sunday до Saturday |
N | Порядковый номер дня недели в соответствии со стандартом ISO-8601 (добавлен в версии PHP 5.1.0) | от 1 (понедельник) до 7 (воскресенье) |
S | Английский суффикс порядкового числительного дня месяца, 2 символа | st, nd, rd или th. Применяется совместно с j |
w | Порядковый номер дня недели | от 0 (воскресенье) до 6 (суббота) |
z | Порядковый номер дня в году (начиная с 0) | От 0 до 365 |
Неделя | --- | --- |
W | Порядковый номер недели года в соответствии со стандартом ISO-8601; недели начинаются с понедельника (добавлено в версии PHP 4.1.0) | Например: 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) принадлежит предыдущему или следующему году; тогда будет использован год этой недели. (добавлен в версии PHP 5.1.0) | Примеры: 1999 или 2003 |
Y | Порядковый номер года, 4 цифры | Примеры: 1999, 2003 |
y | Номер года, 2 цифры | Примеры: 99, 03 |
Время | --- | --- |
a | Ante meridiem (англ. "до полудня") или Post meridiem (англ. "после полудня") в нижнем регистре | am или pm |
A | Ante 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 | Микросекунды (добавлено в версии PHP 5.2.2). Учтите, что date() всегда будет возвращать 000000, т.к. она принимает целочисленный (integer) параметр, тогда как DateTime::format() поддерживает микросекунды. | Например: 654321 |
Временная зона | --- | --- |
e | Код шкалы временной зоны(добавлен в версии PHP 5.1.0) | Примеры: UTC, GMT, Atlantic/Azores |
I (заглавная i) | Признак летнего времени | 1, если дата соответствует летнему времени, 0 в противном случае. |
O | Разница с временем по Гринвичу, в часах | Например: +0200 |
P | Разница с временем по Гринвичу с двоеточием между часами и минутами (добавлено в версии PHP 5.1.3) | Например: +02:00 |
T | Аббревиатура временной зоны | Примеры: EST, MDT ... |
Z | Смещение временной зоны в секундах. Для временных зон, расположенных западнее UTC возвращаются отрицательные числа, а расположенных восточнее UTC - положительные. | от -43200 до 50400 |
Полная дата/время | --- | --- |
c | Дата в формате стандарта ISO 8601 (добавлено в PHP 5) | 2004-02-12T15:19:21+00:00 |
r | Дата в формате " href="http://www.faqs.org/rfcs/rfc2822">» RFC 2822 | Например: Thu, 21 Dec 2000 16:01:07 +0200 |
U | Количество секунд, прошедших с начала Эпохи Unix (The Unix Epoch, 1 января 1970 00:00:00 GMT) |
Корректные окончания названия месяца в датах сайта на Joomla
Названия месяцев описаны в файле локализации \language\ru-RU\ru-RU.ini
Здесь можно поправить окончания у названий месяцев Январь – Января и т.п. Но Вы потеряете эти изменения при ближайшем обновлении локализации Joomla. Если шаблон русифицирован правильно, то лучше воспользоваться механизмом подмены – overrides:
- Скопировать файл \language\ru-RU\ru-RU.ini в папку \language\overrides и проверьте/исправьте права на этот файл.
- Открыть файл \language\overrides\ru-RU.ini редактором и оставить здесь только блок текста с названиями месяцев, которые Вы будете изменять на собственный вариант.