{html_select_date} - PHPプロ!マニュアル

Smartyマニュアル

- {html_select_date}

{html_select_date}

{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 関数が紹介されています。

例 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>

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

閲覧履歴



Pick Up Q&A

Q
ログファイルの中の空のデータ行を削除したい
 このエントリーをはてなブックマークに追加 
A
ログのデータ個数(列数)が固定で、空のログが"<><><>"だと既知であれば if ($line === "<><><>") { continue; } で読み飛ばしてもいいのでは? ...

>>続きを読む

まずは配列や文字列の扱いから、じっくり勉強して行きましょう。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)

Q&A掲示板 新着情報