Calendar 表单字段
日历表单字段类型提供一个文本框用于输入日期。文本框旁边的图标提供一个弹出日历的链接,还可以使用该日历输入日期值。如果字段具有已保存的值,则此值将显示在文本框中。否则,将显示默认值(如果有)。
-
type(必填)必须是日历。
-
name(必填)是字段的唯一名称。
-
label(必填)(可翻译)是字段 html 标签。
-
description(可选)(可翻译)是字段描述。
-
readonly(可选)是指文本框是否只读(true 或 false)。如果文本框是只读的,则不能更改日期,但可以选中和复制。将不显示日历图标。
-
disabled(可选)是指文本框是否已禁用(true 或 false)。如果文本框已禁用,则无法更改、选中或复制日期。
-
class(可选)是 HTML 表单字段的 CSS 类名称。
-
日期格式(可选)是将要使用的日期格式。此格式为 PHP 中用于指定日期字符串格式的格式(参见下文)。如果未指定格式参数,将假定 '%Y-%m-%d'(生成类似 '2017-05-15' 的日期)。如果 showtime 为 true,则需要包含一些时间字段,例如 '%Y-%m-%d %H:%i:%s'。
-
筛选器(可选)为要使用的时区。有两个主要值:“server_utc”和“user_utc”。第一个是服务器时区,另一个是分别在全局配置和用户信息中配置的用户时区。如果将服务器时区设置为 UTC 以外的其他内容且 showtime 为 false,则还有一个值 none,使用时必须使用它。
-
translateformat(可选):如果设置为 true,那么日历将使用 DATE_FORMAT_CALENDAR_DATE 语言键(如果 showtime 为 true)或 DATE_FORMAT_CALENDAR_DATETIME(如果 showtime 为 false)来确定格式。忽略格式属性。如果为 false,则使用格式属性,但请注意,格式字符串必须包含要记录的时间的时间字段。默认为 false。
-
showtime(可选):如果设置为 true 且 translateformat 为 true,则使用语言键 DATE_FORMAT_CALENDAR_DATETIME,否则为 DATE_FORMAT_CALENDAR_DATE。默认为 false。
-
时间格式(可选):可以设置为 12 或 24。如果设置为 12,则可以使用一个额外的选项让用户在 AM 和 PM 之间进行选择。此属性不影响日期/时间保存方式。默认为 24。
-
独立表头(可选):如果设置为 false,则年和月选择将设置在两个单独的行上,相互独立。默认为 false。
-
今日按钮(可选):如果设置为 true,则在日期选取器的底部添加一个按钮,以选择当前日期。默认为 true。
-
周数(可选):如果设置为 true,则在日期选取器的左侧添加一列,以显示本年中的周数。默认为 true。
-
填充表格(可选):如果设置为 true,则在当前月的顶部和底部添加上个月和下个月的日期以填充网格。默认为 true。
-
最小年份(可选):设置一个有符号整数表示年份数目(-10、-2、0、7、12、...),以定义年份选择的相对下限。用户不能选择低于此限制的年份。如果是零(这是默认值),则没有限制。
-
最大年份(可选):设置一个有符号整数表示年份数目(-10、-2、0、7、12、...),以定义年份选择的相对上限。用户不能选择高于此限制的年份。如果是零(这是默认值),则没有限制。
实施者:库文件/src/Form/Field/CalendarField.php
用于简单 DatePicker 的示例 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"
/>
用于高级 DatePicker 的示例 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:%i:%s"
singleheader="true"
showtime="true"
timeformat="12"
todaybutton="true"
weeknumbers="true"
filltable="true"
minyear="-3"
maxyear="5"
/>
format 属性指定了存储日期字符串所采用的格式。它也是手动输入日期所需的格式;除了将忽略标点符号。用于指定日期格式的编码方案为针对 datepicker 中使用的 JavaScript 库自定义定义的方案,可以详细了解 Joomla's Github 上的信息。下面是其中一些常用的日期字符串代码
字符 | 说明 | 示例 |
---|---|---|
d | 一个月中的天数,采用带前导零的 2 位数字 | 01 至 31 |
a | 天的文本表示形式,采用三个字母 | 周一至周日 |
e | 一个月中的天数,不带前导零 | 1 至 31 |
A | 一周中某一天的完整文本表示形式 | 星期一至星期日 |
w | 一周中某一天的数字表示形式 | 0(星期日)至 6(星期六) |
j | 一年中的某一天(从 0 开始) | 001 至 366 |
B | 一个月的完整文本表示形式 | 1 月至 12 月 |
m | 一个月中的数字表示形式,采用带前导零的格式 | 01 至 12 |
b | 一个月的缩写文本表示形式,采用三个字母 | 1 月至 12 月 |
Y | 一年的完整数字表示形式,采用 4 位数字 | 1999 或 2003 |
y | 一年的两位数表示形式 | 99 或 03 |
P | 小写,上午或下午 | 上午或下午 |
p | 大写,上午或下午 | 上午或下午 |
注意:存储在 params.ini 文件中的日期格式由 format 参数指定。由于该格式可以包含与语言相关的元素(例如,“%A”说明符),因此,如果前端和后端语言可能不同,则需要小心,不要使用此类元素。
注意:日历表单字段类型不支持非公历。如果您需要支持非公历,则需要创建一个自定义表单字段类型来支持您的日历。