{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-的值,作为时间属性来显示没有选中的日期。

Note

日期技巧文章中,介绍了 较有用的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日期技巧.