Skip to content

{html_select_date}

{html_select_date} 是一个自定义函数,用于创建日期下拉框。它可以显示年、月和日中的任意一个或全部。除了下面列表中的参数外,所有其他参数都会以名称/值对的形式打印在日、月和年的 <select> 标签内。

属性

属性名 默认值 描述
prefix Date_ 变量名的前缀
time 预选的日期/时间。接受时间戳、DateTime 对象或任何可由 strtotime() 解析的字符串。如果给定一个数组,则使用字段数组和前缀来标识从中提取年、月和日的数组元素。如果省略此参数或提供一个假值,将选择当前日期。要防止选择日期,请传入 NULL。
start_year 当前年 下拉框中的第一年,可以是年份或相对于当前年份的值(+/- N)
end_year 与 start_year 相同 下拉框中的最后一年,可以是年份或相对于当前年份的值(+/- N)
display_days TRUE 是否显示天数
display_months TRUE 是否显示月份
display_years TRUE 是否显示年份
month_names 用于显示月份的字符串列表。array(1 => 'Jan', ..., 12 => 'Dec')
month_format \%B 月份的格式(strftime)
day_format \%02d 输出的日期格式(sprintf)
day_value_format \%d 日期值的格式(sprintf)
year_as_text FALSE 是否将年份显示为文本
reverse_years FALSE 是否以逆序显示年份
field_array 如果给定了名称,将以这种方式绘制选择框,以便将结果以 name[Day]、name[Year]、name[Month] 的形式返回给 PHP。
day_size 如果给定,则在 select 标签中添加 size 属性
month_size 如果给定,则在 select 标签中添加 size 属性
year_size 如果给定,则在 select 标签中添加 size 属性
all_extra 如果给定,则将额外的属性添加到所有 select/input 标签中
day_extra 如果给定,则将额外的属性添加到 select/input 标签中
month_extra 如果给定,则将额外的属性添加到 select/input 标签中
year_extra 如果给定,则将额外的属性添加到 select/input 标签中
all_id 如果给定,则将 id 属性添加到所有 select/input 标签中
day_id 如果给定,则将 id 属性添加到 select/input 标签中
month_id 如果给定,则将 id 属性添加到 select/input 标签中
year_id 如果给定,则将 id 属性添加到 select/input 标签中
field_order MDY 显示字段的顺序
field_separator \n 在不同字段之间打印的字符串
month_value_format \%m 月份值的 strftime() 格式,默认为 %m 代表月份数字。
all_empty 如果提供,则所有 select-box 的第一个元素将具有此值作为标签和 "" 作为值。这对于使 select-box 读取 "Please select" 等非常有用。
year_empty 如果提供,则年份的 select-box 的第一个元素将具有此值作为标签和 "" 作为值。这对于使 select-box 读取 "Please select a year" 等非常有用。注意,您可以使用像 "-MM-DD" 这样的值作为时间属性来表示未选择的年份。
month_empty 如果提供,则月份的 select-box 的第一个元素将具有此值作为标签和 "" 作为值。注意,您可以使用像 "YYYY--DD" 这样的值作为时间属性来表示未选择的月份。
day_empty 如果提供,则日期的 select-box 的第一个元素将具有此值作为标签和 "" 作为值。注意,您可以使用像 "YYYY-MM-" 这样的值作为时间属性来表示未选择的日期。

注意

日期提示页面 上有一个有用的 PHP 函数,用于将 {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>
  ..... 省略 .....
  <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>
  ..... 省略 .....
  <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>
  ..... 省略 .....
  <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>
{* 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>
  .... 省略 ....
  <option value="11">November</option>
  <option value="12" selected="selected">December</option>
</select>
<select name="StartDateYear">
  <option value="1995">1995</option>
  .... 省略 ....
  <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日期提示页面