Smarty:html_select_date函数
{html_select_date}
{html_select_date}
是一个 自定义函数,用于创建一个选择日期的下拉框。 它可以显示任何或者全部的年、月、日。 任何不在上面列表中的键值对属性,都会被输出到<select>
标签中作为属性和值。
参数名称 | 类型 | 必选参数 | 默认值 | 说明 |
---|---|---|---|---|
prefix | string | No | Date_ | 下拉框名称的前缀 |
time | 时间戳, DateTime, mysql时间戳或任何strtotime() 能支持的字符串,或者是数组(当设置了field_array) | No | 当前 时间戳 | 默认选中的日期。如果提供了数组,那么field_array和prefix属性将单独作用在每个数组元素上, 包括年月日。 |
start_year | string | No | 当前年份 | 下拉框开始显示的年份,可以设置一个年份数字或者默认当前年份(+/- N) |
end_year | string | No | same as start_year | 下拉框结束显示的年份,可以设置一个年份的数字或者默认当前年份(+/- N) |
display_days | boolean | No | TRUE | 是否显示日期 |
display_months | boolean | No | TRUE | 是否显示月份 |
display_years | boolean | No | TRUE | 是否显示年份 |
month_format | array | No | null | 月份显示的字符串的数组.如 array(1 => 'Jan', …, 12 => 'Dec') |
month_names | string | No | %B | 月份显示的格式 (strftime) |
day_format | string | No | %02d | 日期显示的格式 (sprintf) |
day_value_format | string | No | %d | 日期值显示的格式 (sprintf) |
year_as_text | boolean | No | FALSE | 是否将年份显示为文字 |
reverse_years | boolean | No | FALSE | 是否按倒序显示年份 |
field_array | string | No | null | 如果设置了field_array值,则下拉框的值发送的PHP时,将会是 值[Day], 值[Year], 值[Month]的格式。 |
day_size | string | No | null | 附加日期select标签的size属性 |
month_size | string | No | null | 附加月份select标签的size属性 |
year_size | string | No | null | 附加年份select标签的size属性 |
all_extra | string | No | null | 附加给全部select/input标签附加的属性 |
day_extra | string | No | null | 附加给日期select/input标签附加的属性 |
month_extra | string | No | null | 附加给月份select/input标签附加的属性 |
year_extra | string | No | null | 附加给年份select/input标签附加的属性 |
all_id | string | No | null | 全部select/input标签的ID值 |
day_id | string | No | null | 日期select/input标签的ID值 |
month_id | string | No | null | 月份select/input标签的ID值 |
year_id | string | No | null | 年份select/input标签的ID值 |
field_order | string | No | MDY | 显示各下拉框的顺序 |
field_separator | string | No | \n | 显示在各字段之间间隔的字符串 |
month_value_format | string | No | %m | 月份值的显示格式(按strftime())默认是 %m |
all_empty | string | No | null | 该属性可以在每个下拉框的第一行显示文字,并以“”作为它的值。 在需要让下拉框的第一行显示“请选择” 的情况下比较有用。 |
year_empty | string | No | null | 该属性可以在年份下拉框的第一行显示文字,并以“”作为它的值。 在需要让年份下拉框的第一行显示“请选择年份” 的情况下比较有用。 注意你可以使用如“-MM-DD”的值,作为时间属性来显示没有选中的年份。 |
month_empty | string | No | null | 该属性可以在月份下拉框的第一行显示文字,并以“”作为它的值。 注意你可以使用如“YYYY--DD”的值,作为时间属性来显示没有选中的月份。 |
day_empty | string | No | null | 该属性可以在日期下拉框的第一行显示文字,并以“”作为它的值。 注意你可以使用如“YYYY-MM-”的值,作为时间属性来显示没有选中的日期。 |
温馨提示:
在日期技巧文章中,介绍了 较有用的php函数来将{html_select_date}
值转换成时间戳。
Example 8.16. {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> ..... snipped ..... <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> ..... snipped ..... <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> ..... snipped ..... <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>
Example 8.17. {html_select_date} 第二个地理
{* 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> .... snipped .... <option value="11">November</option> <option value="12" selected="selected">December</option> </select> <select name="StartDateYear"> <option value="1995">1995</option> .... snipped .... <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
和 日期技巧.