{html_select_date}
{html_select_date} 是一个自定义函数,用于创建日期下拉框。它可以显示年、月和日中的任意一个或全部。除了下面列表中的参数外,所有其他参数都会以名称/值对的形式打印在日、月和年的 <select> 标签内。
属性
| 属性名 | 默认值 | 描述 |
|---|---|---|
| prefix | Date_ | 变量名的前缀 |
| time | 预选的日期/时间。接受时间戳、DateTime 对象或任何可由 strtotime() 解析的字符串。如果给定一个数组,则使用字段数组和前缀来标识从中提取年、月和日的数组元素。如果省略此参数或提供一个假值,将选择当前日期。要防止选择日期,请传入 NULL。 | |
| start_year | 当前年 | 下拉框中的第一年,可以是年份或相对于当前年份的值(+/- N) |
| end_year | 与 start_year 相同 | 下拉框中的最后一年,可以是年份或相对于当前年份的值(+/- N) |
| display_days | TRUE | 是否显示天数 |
| display_months | TRUE | 是否显示月份 |
| display_years | TRUE | 是否显示年份 |
| month_names | 用于显示月份的字符串列表。array(1 => 'Jan', ..., 12 => 'Dec') | |
| month_format | \%B | 月份的格式(strftime) |
| day_format | \%02d | 输出的日期格式(sprintf) |
| day_value_format | \%d | 日期值的格式(sprintf) |
| year_as_text | FALSE | 是否将年份显示为文本 |
| reverse_years | FALSE | 是否以逆序显示年份 |
| field_array | 如果给定了名称,将以这种方式绘制选择框,以便将结果以 name[Day]、name[Year]、name[Month] 的形式返回给 PHP。 | |
| day_size | 如果给定,则在 select 标签中添加 size 属性 | |
| month_size | 如果给定,则在 select 标签中添加 size 属性 | |
| year_size | 如果给定,则在 select 标签中添加 size 属性 | |
| all_extra | 如果给定,则将额外的属性添加到所有 select/input 标签中 | |
| day_extra | 如果给定,则将额外的属性添加到 select/input 标签中 | |
| month_extra | 如果给定,则将额外的属性添加到 select/input 标签中 | |
| year_extra | 如果给定,则将额外的属性添加到 select/input 标签中 | |
| all_id | 如果给定,则将 id 属性添加到所有 select/input 标签中 | |
| day_id | 如果给定,则将 id 属性添加到 select/input 标签中 | |
| month_id | 如果给定,则将 id 属性添加到 select/input 标签中 | |
| year_id | 如果给定,则将 id 属性添加到 select/input 标签中 | |
| field_order | MDY | 显示字段的顺序 |
| field_separator | \n | 在不同字段之间打印的字符串 |
| month_value_format | \%m | 月份值的 strftime() 格式,默认为 %m 代表月份数字。 |
| all_empty | 如果提供,则所有 select-box 的第一个元素将具有此值作为标签和 "" 作为值。这对于使 select-box 读取 "Please select" 等非常有用。 | |
| year_empty | 如果提供,则年份的 select-box 的第一个元素将具有此值作为标签和 "" 作为值。这对于使 select-box 读取 "Please select a year" 等非常有用。注意,您可以使用像 "-MM-DD" 这样的值作为时间属性来表示未选择的年份。 | |
| month_empty | 如果提供,则月份的 select-box 的第一个元素将具有此值作为标签和 "" 作为值。注意,您可以使用像 "YYYY--DD" 这样的值作为时间属性来表示未选择的月份。 | |
| day_empty | 如果提供,则日期的 select-box 的第一个元素将具有此值作为标签和 "" 作为值。注意,您可以使用像 "YYYY-MM-" 这样的值作为时间属性来表示未选择的日期。 |
注意
在 日期提示页面 上有一个有用的 PHP 函数,用于将
{html_select_date}表单值转换为时间戳。
示例
模板代码:
{html_select_date}
输出结果为:
<select name="Date_Month">
<option value="1">January</option>
<option value="2">February</option>
<option value="3">March</option>
..... 省略 .....
<option value="10">October</option>
<option value="11">November</option>
<option value="12" selected="selected">December</option>
</select>
<select name="Date_Day">
<option value="1">01</option>
<option value="2">02</option>
<option value="3">03</option>
..... 省略 .....
<option value="11">11</option>
<option value="12">12</option>
<option value="13" selected="selected">13</option>
<option value="14">14</option>
<option value="15">15</option>
..... 省略 .....
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>
<select name="Date_Year">
<option value="2006" selected="selected">2006</option>
</select>
{* start and end year can be relative to current year *}
{html_select_date prefix='StartDate' time=$time start_year='-5'
end_year='+1' display_days=false}
如果当前年份为 2000,则输出结果为:
<select name="StartDateMonth">
<option value="1">January</option>
<option value="2">February</option>
.... 省略 ....
<option value="11">November</option>
<option value="12" selected="selected">December</option>
</select>
<select name="StartDateYear">
<option value="1995">1995</option>
.... 省略 ....
<option value="1999">1999</option>
<option value="2000" selected="selected">2000</option>
<option value="2001">2001</option>
</select>
另请参阅 {html_select_time}、
date_format、
$smarty.now 和 日期提示页面。