{html_select_date}

{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. Omitting this parameter or supplying a falsy value will select the current date. To prevent date selection, pass in NULL
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_names array No null List of strings to display for months. array(1 => 'Jan', …, 12 => 'Dec')
month_format 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.

Note

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.