{html_select_date}

{html_select_date} は、日付のドロップダウンリストを作成する カスタム関数 です。 年・月・日のいずれか又は全てを表示する事が出来ます。 以下の属性リストに無いパラメータが与えられた場合は、 作成された年、月、日の各 <select> タグの内側に 名前/値 のペアで表されます。

属性名 必須 デフォルト 概要
prefix string No Date_ name属性に付加する接頭辞
time timestampDateTime、 mysql timestamp あるいは strtotime() が解釈できる任意の文字列。field_array が設定されている場合は、この関数が作る配列。 No 現在の timestamp どの日付/時刻を初期選択状態にするか。配列を指定した場合は、属性 field_array と prefix を使って配列の要素を特定し、年・月・日を取り出します。 このパラメータを省略したり false を渡したりすると、現在の日付を選択した状態にします。 何も選択していない状態にしたければ、 NULL を渡しましょう。
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_names array No null 月名を表す文字列の配列。たとえば array(1 => 'Jan', …, 12 => 'Dec')
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タグに拡張属性を追加
all_id string No null すべての select タグと input タグに id 属性を追加する
day_id string No null select タグと input タグに id 属性を追加する
month_id string No null select タグと input タグに id 属性を追加する
year_id string No null select タグと input タグに id 属性を追加する
field_order string No MDY フィールドを表示する順序
field_separator string No \n フィールド間に表示する文字列
month_value_format string No %m strftime() フォーマットによる月の値(デフォルトは%m)
all_empty string No null すべてのセレクトボックスの最初の要素に、指定した文字列をlabelとして、 空文字 「」 のvalueを持たせます。 例えば、セレクトボックスに 「選択して下さい」 と表示させる時に便利です。
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 関数が紹介されています。

例 8.16. {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>

  

例 8.17. {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 および 日付に関するヒント も参照してください。