{html_select_date} is a
   custom function
   that creates date dropdowns.
   It can display any or all of year, month, and day.
  All parameters that are not in the list below are printed as
  name/value-pairs inside the <select> tags
  of day, month and  year.
 
| Attribute Name | Type | Required | Default | Description | 
|---|---|---|---|---|
| prefix | string | No | Date_ | What to prefix the var name with | 
| time | 
      timestamp, 
      DateTime, 
      mysql timestamp or any string parsable by 
      strtotime(), 
      arrays as produced by this function if field_array is set.
      | 
No | current timestamp | What date/time to pre-select. If an array is given, the attributes field_array and prefix are used to identify the array elements to extract year, month and day from. | 
| start_year | string | No | current year | The first year in the dropdown, either year number, or relative to current year (+/- N) | 
| end_year | string | No | same as start_year | The last year in the dropdown, either year number, or relative to current year (+/- N) | 
| display_days | boolean | No | TRUE | 
Whether to display days or not | 
| display_months | boolean | No | TRUE | 
Whether to display months or not | 
| display_years | boolean | No | TRUE | 
Whether to display years or not | 
| month_format | array | No | null | List of strings to display for months. array(1 => 'Jan', …, 12 => 'Dec') | 
| month_names | string | No | %B | What format the month should be in (strftime) | 
| day_format | string | No | %02d | What format the day output should be in (sprintf) | 
| day_value_format | string | No | %d | What format the day value should be in (sprintf) | 
| year_as_text | boolean | No | FALSE | 
Whether or not to display the year as text | 
| reverse_years | boolean | No | FALSE | 
Display years in reverse order | 
| field_array | string | No | null | If a name is given, the select boxes will be drawn such that the results will be returned to PHP in the form of name[Day], name[Year], name[Month]. | 
| day_size | string | No | null | Adds size attribute to select tag if given | 
| month_size | string | No | null | Adds size attribute to select tag if given | 
| year_size | string | No | null | Adds size attribute to select tag if given | 
| all_extra | string | No | null | Adds extra attributes to all select/input tags if given | 
| day_extra | string | No | null | Adds extra attributes to select/input tags if given | 
| month_extra | string | No | null | Adds extra attributes to select/input tags if given | 
| year_extra | string | No | null | Adds extra attributes to select/input tags if given | 
| all_id | string | No | null | Adds id-attribute to all select/input tags if given | 
| day_id | string | No | null | Adds id-attribute to select/input tags if given | 
| month_id | string | No | null | Adds id-attribute to select/input tags if given | 
| year_id | string | No | null | Adds id-attribute to select/input tags if given | 
| field_order | string | No | MDY | The order in which to display the fields | 
| field_separator | string | No | \n | String printed between different fields | 
| month_value_format | string | No | %m | strftime() format of the month values, default is %m for month numbers. | 
| all_empty | string | No | null | If supplied then the first element of any select-box has this value as it's label and “” as it's value. This is useful to make the select-boxes read “Please select” for example. | 
| year_empty | string | No | null | If supplied then the first element of the year's select-box has this value as it's label and “” as it's value. This is useful to make the select-box read “Please select a year” for example. Note that you can use values like “-MM-DD” as time-attribute to indicate an unselected year. | 
| month_empty | string | No | null | If supplied then the first element of the month's select-box has this value as it's label and “” as it's value. . Note that you can use values like “YYYY--DD” as time-attribute to indicate an unselected month. | 
| day_empty | string | No | null | If supplied then the first element of the day's select-box has this value as it's label and “” as it's value. Note that you can use values like “YYYY-MM-” as time-attribute to indicate an unselected day. | 
   There is an useful php function on the
   date tips page for converting
   {html_select_date} form values to a timestamp.
  
Example 8.16. {html_select_date}
Template code
{html_select_date}
  
This will output:
<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} second example
{* 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}
  
With 2000 as the current year the output:
<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>
  See also
  {html_select_time},
  date_format,
  $smarty.now
  and the date tips page.