{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}

模板代码

  1. {html_select_date}
  2.  

输出

  1. <select name="Date_Month">
  2. <option value="1">January</option>
  3. <option value="2">February</option>
  4. <option value="3">March</option>
  5. ..... snipped .....
  6. <option value="10">October</option>
  7. <option value="11">November</option>
  8. <option value="12" selected="selected">December</option>
  9. </select>
  10. <select name="Date_Day">
  11. <option value="1">01</option>
  12. <option value="2">02</option>
  13. <option value="3">03</option>
  14. ..... snipped .....
  15. <option value="11">11</option>
  16. <option value="12">12</option>
  17. <option value="13" selected="selected">13</option>
  18. <option value="14">14</option>
  19. <option value="15">15</option>
  20. ..... snipped .....
  21. <option value="29">29</option>
  22. <option value="30">30</option>
  23. <option value="31">31</option>
  24. </select>
  25. <select name="Date_Year">
  26. <option value="2006" selected="selected">2006</option>
  27. </select>
  28.  


Example 8.17. {html_select_date} 第二个地理

  1. {* start and end year can be relative to current year *}
  2. {html_select_date prefix='StartDate' time=$time start_year='-5'
  3. end_year='+1' display_days=false}
  4.  

如果当前是 2000年 则输出:

  1. <select name="StartDateMonth">
  2. <option value="1">January</option>
  3. <option value="2">February</option>
  4. .... snipped ....
  5. <option value="11">November</option>
  6. <option value="12" selected="selected">December</option>
  7. </select>
  8. <select name="StartDateYear">
  9. <option value="1995">1995</option>
  10. .... snipped ....
  11. <option value="1999">1999</option>
  12. <option value="2000" selected="selected">2000</option>
  13. <option value="2001">2001</option>
  14. </select>
  15.  

参见 {html_select_time}, date_format, $smarty.now日期技巧.

原文: https://www.smarty.net/docs/zh_CN/language.function.html.select.date.tpl