Smarty Manual
Prev | Chapter 8. Custom Functions | Next

# html_select_date

Attribute Name | Type | Required | Default | Description
--- | --- | --- | --- | ---
prefix | string | No | Date_ | what to prefix the var name with
time | timestamp/YYYY-MM-DD | No | current time in unix timestamp or YYYY-MM-DD format | what date/time to use
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 | 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
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.
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.

html_select_date is a custom function that creates date dropdowns for you. It can display any or all of year, month, and day.

Example 8-10. html_select_date
    {html_select_date}

    OUTPUT:

    <select name="Date_Month">
    <option value="1">January</option>
    <option value="2">February</option>
    <option value="3">March</option>
    <option value="4">April</option>
    <option value="5">May</option>
    <option value="6">June</option>
    <option value="7">July</option>
    <option value="8">August</option>
    <option value="9">September</option>
    <option value="10">October</option>
    <option value="11">November</option>
    <option value="12" 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="4">04</option>
    <option value="5">05</option>
    <option value="6">06</option>
    <option value="7">07</option>
    <option value="8">08</option>
    <option value="9">09</option>
    <option value="10">10</option>
    <option value="11">11</option>
    <option value="12">12</option>
    <option value="13" selected>13</option>
    <option value="14">14</option>
    <option value="15">15</option>
    <option value="16">16</option>
    <option value="17">17</option>
    <option value="18">18</option>
    <option value="19">19</option>
    <option value="20">20</option>
    <option value="21">21</option>
    <option value="22">22</option>
    <option value="23">23</option>
    <option value="24">24</option>
    <option value="25">25</option>
    <option value="26">26</option>
    <option value="27">27</option>
    <option value="28">28</option>
    <option value="29">29</option>
    <option value="30">30</option>
    <option value="31">31</option>
    </select>
    <select name="Date_Year">
    <option value="2001" selected>2001</option>
    </select>

Example 8-11. html_select_date
    {* 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}

    OUTPUT: (current year is 2000)

    <select name="StartDateMonth">
    <option value="1">January</option>
    <option value="2">February</option>
    <option value="3">March</option>
    <option value="4">April</option>
    <option value="5">May</option>
    <option value="6">June</option>
    <option value="7">July</option>
    <option value="8">August</option>
    <option value="9">September</option>
    <option value="10">October</option>
    <option value="11">November</option>
    <option value="12" selected>December</option>
    </select>
    <select name="StartDateYear">
    <option value="1999">1995</option>
    <option value="1999">1996</option>
    <option value="1999">1997</option>
    <option value="1999">1998</option>
    <option value="1999">1999</option>
    <option value="2000" selected>2000</option>
    <option value="2001">2001</option>
    </select>

Prev | Home | Next
html_radios | Up | html_select_time