Тип calendar поля формы предоставляет текстовое поле для ввода даты. Значок рядом с текстовым полем предоставляет ссылку на всплывающий календарь, который также можно использовать для ввода значения даты. Если в поле есть сохраненное значение, оно отображается в текстовом поле. В противном случае отображается значение по умолчанию, если оно есть.
- type (обязательно) - должен быть calendar.
- name (обязательно) - уникальное имя поля.
- label (обязательно) (разрешается переводить) - описательный заголовок поля.
- default (необязательно) - дата по умолчанию. Должно быть указано в том же формате, что и аргумент формата. Вы можете поставить «NOW», чтобы получить информацию о текущей дате или времени в заданном формате. Вы также можете использовать любые аргументы JDate ('now +1 month', 'now +2 months +7 days +12 hours', ...).
- description (необязательно) (разрешается переводить) - это текст, который будет отображаться как всплывающая подсказка, когда пользователь наведёт указатель мыши на текстовое поле.
- readonly (необязательно) - указывает, является ли текстовое поле доступным только для чтения (true или false). Если текстовое поле предназначено только для чтения, дату нельзя изменить, но можно выбрать и скопировать. Значок календаря отображаться не будет.
- disabled (необязательно) - отключено ли текстовое поле (true или false). Если текстовое поле отключено, дату нельзя изменить, выбрать или скопировать.
- class (необязательно) - это имя класса CSS для поля формы HTML. Рекомендуется использовать стили Bootstrap.
- format (необязательно) - используемый формат даты. Это формат, используемый PHP для указания форматов строк даты (см. Ниже). Если аргумент формата не указан, предполагается '%Y-%m-%d' (формат даты будет «2017-05-15»). Если showtime true (истинна), вам нужно будет включить некоторые поля времени, например, '%Y-%m-%d %H:%M:%S'.
- filter (необязательно) - часовой пояс, который будет использоваться. Есть два значения: server_utc и user_utc. Первый - часовой пояс сервера, а второй - часовой пояс пользователя, настроенный в глобальной конфигурации и пользовательской информации соответственно.
- translateformat (необязательно) - если установлено значение true, календарь будет использовать языковой ключ DATE_FORMAT_CALENDAR_DATE (если время показа истинно) или DATE_FORMAT_CALENDAR_DATETIME (если время показа ложно) для определения формата. Атрибут формата игнорируется. Если false, используется атрибут формата (такое же поведение, как и в предыдущих версиях 3.7.0), но обратите внимание, что строка формата должна включать поля времени для записи времени. Значение по умолчанию - false.
- showtime (необязательно) - если установлено значение true и значение translateformat равно true, используется языковой ключ DATE_FORMAT_CALENDAR_DATETIME, в противном случае - DATE_FORMAT_CALENDAR_DATE. (начиная с 3.7.0). Значение по умолчанию - false.
- timeformat (необязательно) - можно установить 12 или 24 (начиная с версии 3.7.0). Если установлено значение 12, пользователю доступен дополнительный выбор между AM и PM. Этот атрибут не влияет на способ сохранения даты и времени. Значение по умолчанию 24.
- singleheader (необязательно) - если установлено значение false, выбор года и месяца будет установлен на двух отдельных строках с независимым выбором (начиная с версии 3.7.0). Значение по умолчанию - false.
- todaybutton (необязательно) - если установлено значение true, в нижней части окна выбора даты добавляется кнопка для выбора даты текущего дня (начиная с версии 3.7.0). Значение по умолчанию true.
- weeknumbers (необязательно) - если установлено значение true, слева от средства выбора даты добавляется столбец для отображения номера недели в текущем году (начиная с версии 3.7.0). Значение по умолчанию true.
- filltable (необязательно) - если установлено значение true, даты предыдущего и следующего месяца добавляются вверху и внизу текущего месяца для заполнения сетки (начиная с 3.7.0). Значение по умолчанию true.
- minyear (необязательно) - устанавливает целое число со знаком для количества лет (-10, -2, 0, 7, 12, ...), чтобы определить относительный нижний предел для выбора года. Пользователь не может выбрать год до этого лимита (начиная с версии 3.7.0). Если установлено ноль, который является значением по умолчанию, то никаких ограничений нет.
- maxyear (необязательно) - устанавливает целое число со знаком для количества лет (-10, -2, 0, 7, 12, ...), чтобы определить относительный верхний предел для выбора года. Пользователь не может выбрать год после этого лимита (начиная с версии 3.7.0). Если установлено ноль, который является значением по умолчанию, то никаких ограничений нет.
Пример простого XML определения выбора даты

<field name="mycalendar" type="calendar" default="2017-05-15" label="Select a date" description=""
class="input-small" required="true" filter="user_utc"
showtime="false" todaybutton="false" filltable="false" translateformat="true" />
Пример расширенного XML определения выбора даты

<field name="mycalendar" type="calendar" default="2017-05-15" label="Select a date" description=""
class="input-medium" required="true" filter="user_utc" format="%Y-%m-%d %H:%M:%S"
singleheader="true" showtime="true" timeformat="12" todaybutton="true" weeknumbers="true"
filltable="true" minyear="-3" maxyear="5" />
Атрибут format определяет формат, в котором будет сохранена строка даты. Это также формат, в котором необходимо ввести даты, введенные вручную; за исключением того, что знак препинания игнорируется. Схема кодирования, используемая для указания форматов даты, является настраиваемой, определенной для библиотеки javascript, используемой в datepicker, полную информацию о которой можно найти, например, на Github Joomla. Ниже приведены некоторые из наиболее часто используемых кодов строк даты:
| Определение | Описание | Пример |
| d | День месяца, 2 цифры с ведущими нулями | от 01 до 31 |
| a | Текстовое представление дня, три буквы | С Пн по Вс |
| e | День месяца без ведущих нулей | от 1 до 31 |
| A | Полное текстовое представление дня недели | С понедельника по воскресенье |
| w | Числовое представление дня недели | От 0 (воскресенье) до 6 (суббота) |
| j | День года (начиная с 0) | С 001 по 366 |
| B | Полное текстовое представление месяца | С января по декабрь |
| m | Числовое представление месяца с ведущими нулями | от 01 до 12 |
| b | Краткое текстовое представление месяца, три буквы | С января по декабрь |
| Y | Полное числовое представление года, 4 цифры | 1999 или 2003 |
| y | Двузначное представление года | 99 или 03 |
| P | Строчные буквы Ante Meridiem или Post Meridiem | am или pm |
| p | Прописные буквы Ante Meridiem или Post Meridiem | AM или PM |
Примечание 1. Формат, в котором даты хранятся в файле params.ini, определяется аргументом формата. Поскольку в этом формате могут быть элементы, зависящие от языка (например, спецификатор '%A'), вам нужно быть осторожным, чтобы не использовать такие элементы, если существует вероятность того, что интерфейсный и внутренний языки могут быть разными.
Примечание 2. Тип calendar поля формы не поддерживает не григорианские календари. Если вам нужно поддерживать не григорианские календари, вам нужно будет создать настраиваемый тип поля формы для поддержки вашего календаря.
Стандартные связанные фильтры
user_utc - вычисляет указанное значение времени по Гринвичу в соответствии с настройками часового пояса пользователя.
Посмотреть все стандартные типы полей формы можно здесь: https://d-nik.site/ru/joomla-4/joomla-dlya-razrabotchikov/standartnye-tipy-polej-formy
