What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
{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
和 日期技巧.