What is Smarty?
Why use it?
Use Cases and Work Flow
Syntax Comparison
Template Inheritance
Best Practices
Crash Course
You may use the Smarty logo according to the trademark notice.
For sponsorship, advertising, news or other inquiries, contact us at:
{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. |
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.