{html_select_date}

    {html_select_date}是一个定制函数,用来创建日期下拉框。它可以显示年、月及日。所有参数,如果不在下表中,将在年、月、日的<select>标记中作为名称/值对出现。

属性名 类型 必需? 缺省 描述
prefixstringNoDate_ 变量名的前缀
timetimestamp/ YYYY-MM-DDNo 当前时间(Unix时间戳或YYYY-MM-DD格式) 使用何种date/time
start_yearstringNocurrent year 下拉框中的第一个年份,可以是年份数,也可以是相对当前年份(+/- N)
end_yearstringNosame as start_year 下拉框中的最后一个年份,可以是年份数,也可以相对当前年份(+/- N)
display_daysbooleanNoTRUE 是否显示日
display_monthsbooleanNoTRUE 是否显示月
display_yearsbooleanNoTRUE 是否显示年
month_formatstringNo%B 月份的格式(strftime)
day_formatstringNo%02d 日子输出的格式(sprintf)
day_value_formatstringNo%d 日子值的格式(sprintf)
year_as_textbooleanNoFALSE 是否显示年份为文本
reverse_yearsbooleanNoFALSE 以逆序显示年份
field_arraystringNonull 如果给出一个名字,那么选择框的结果返回给PHP时的形式就是name[Day],name[Year],name[Month]。
day_sizestringNonull 如果指定的话,在SELECT标记中加入size属性
month_sizestringNonull 如果指定的话,在SELECT标记中加入size属性
year_sizestringNonull 如果指定的话,在SELECT标记中加入size属性
all_extrastringNonull 如果指定的话,在所有select/input标记中加入额外属性
day_extrastringNonull 如果指定的话,在所有select/input标记中加入额外属性
month_extrastringNonull如果指定的话,在所有select/input标记中加入额外属性
year_extrastringNonull如果指定的话,在所有select/input标记中加入额外属性
field_orderstringNoMDY 各个字段显示的次序
field_separatorstringNo\n 各个字段之间打印的字符串
month_value_formatstringNo%m 月份值的strftime()格式,缺省为%m。
year_emptystringNonull 如果指定的话,那么年份选择框的第一个元素的标签为该字符串,而其值为""。这样可以使选择框看起来为“请选择一个年份”。注意,你可以指定time属性为"-MM-DD"来表示未被选中的年份。
month_emptystringNonull 如果指定的话,那么月份选择框的第一个元素的标签为该字符串,而其值为""。这样可以使选择框看起来为“请选择一个月份”。注意,你可以指定time属性为"YYYY--DD"来表示未被选中的月份。
day_emptystringNonull 如果指定的话,那么日期选择框的第一个元素的标签为该字符串,而其值为""。这样可以使选择框看起来为“请选择一个日期”。注意,你可以指定time属性为"YYYY-MM-"来表示未被选中的日期。

注意:日期技巧中有个很有用的PHP函数可以将{html_select_date}值转换为一个时间戳。

例子8-19. {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="2007" selected="selected">2007</option>
</select>

例子8-20. {html_select_date}第二例

{* 开始和结束的年份可以相对当前年份 *}
{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以及日期技巧页