{html_select_date}
は、日付のドロップダウンリストを作成する
カスタム関数 です。
年・月・日のいずれか又は全てを表示する事が出来ます。
以下の属性リストに無いパラメータが与えられた場合は、
作成された年、月、日の各 <select>
タグの内側に
名前/値 のペアで表されます。
属性名 | 型 | 必須 | デフォルト | 概要 |
---|---|---|---|---|
prefix | string | No | Date_ | name属性に付加する接頭辞 |
time | timestamp/ YYYY-MM-DD | No | UNIXタイムスタンプ又はYYYY-MM-DDフォーマットによる現在の時間 | 使用する日付/時間 |
start_year | string | No | 現在の年 | ドロップダウンリストの始めの年 (年を表す数字又は現在の年からの相対年数(+/- N)) |
end_year | string | No | start_yearと同じ | ドロップダウンリストの終わりの年 (年を表す数字又は現在の年からの相対年数(+/- N)) |
display_days | boolean | No | TRUE |
日を表示するかどうか |
display_months | boolean | No | TRUE |
月を表示するかどうか |
display_years | boolean | No | TRUE |
年を表示するかどうか |
month_format | string | No | %B | 月の表示フォーマット(strftime) |
day_format | string | No | %02d | 日の出力のフォーマット(sprintf) |
day_value_format | string | No | %d | 日の値のフォーマット (sprintf) |
year_as_text | boolean | No | FALSE |
年をテキストとして表示するかどうか |
reverse_years | boolean | No | FALSE |
年を逆順で表示する |
field_array | string | No | null | name属性が与えられた場合、結果の値を name[Day],name[Month],name[Year]の形の連想配列にしてPHPに返す |
day_size | string | No | null | 日のselectタグにsize属性を追加 |
month_size | string | No | null | 月のselectタグにsize属性を追加 |
year_size | string | No | null | 年のselectタグにsize属性を追加 |
all_extra | string | No | null | 全てのselect/inputタグに拡張属性を追加 |
day_extra | string | No | null | 日のselect/inputタグに拡張属性を追加 |
month_extra | string | No | null | 月のselect/inputタグに拡張属性を追加 |
year_extra | string | No | null | 年のselect/inputタグに拡張属性を追加 |
field_order | string | No | MDY | フィールドを表示する順序 |
field_separator | string | No | \n | フィールド間に表示する文字列 |
month_value_format | string | No | %m | strftime() フォーマットによる月の値(デフォルトは%m) |
year_empty | string | No | null | 年のセレクトボックスの最初の要素に、指定した文字列をlabelとして、 空文字 “” のvalueを持たせます。 例えば、セレクトボックスに “年を選択して下さい” と表示させる時に便利です。 年を選択しないことを示唆するのに、time属性に対して “-MM-DD” という値が指定できることに注意してください。 |
month_empty | string | No | null | 月のセレクトボックスの最初の要素に、指定した文字列をlabelとして、 空文字 “” のvalueを持たせます。月を選択しないことを示唆するのに、 time属性に対して “YYYY--DD” という値が指定できることに注意してください。 |
day_empty | string | No | null | 日のセレクトボックスの最初の要素に、指定した文字列をlabelとして、 空文字 “” のvalueを持たせます。日を選択しないことを示唆するのに、 time属性に対して “YYYY-MM-” という値が指定できることに注意してください。 |
日付に関するヒント
のページに、{html_select_date}
の値をタイムスタンプに変換する便利な php 関数が紹介されています。
Example 8.19. {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>
Example 8.20. {html_select_date} の二番目の例
{* 開始年および終了年は、現在の年からの相対値となります *} {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
および 日付に関するヒント
も参照してください。