Home > CakePHP | PHP > CakePHP FormHelper#datetime()で年月日表示を変える

CakePHP FormHelper#datetime()で年月日表示を変える

  • 2008-04-06 (日) 11:15
  • CakePHP | PHP
  • このエントリーをはてなブックマークに追加
この記事の所要時間: 116

CakePHP1.2で追加されたFormHelperには日時をプルダウンメニューで選択する機能があります。

PHP:
  1. <?php echo $form->datetime('hoge', 'YMD', 'NONE'); ?>

これで年月日を選択できるのですが、デフォルトだと↓のように月が英語表現で表示されます。

そこで月を数字表現に変更する方法です。

datetimeメソッドはFormHelper#$optionsの値をプルダウンで表示するリストに使用します。(値が無ければデフォルト値を使用)よってこれを書き換えれば任意の値をリストに表示できます。

PHP:
  1. <?php
  2. // 月を数字へ
  3. $form->options['month'] = array();
  4. for ($i = 1 ; $i <= 12 ; $i++) {
  5.   $form->options['month'][$i] = sprintf("%02d", $i)
  6. }
  7. ?>
  8. <?php echo $form->datetime('hoge', 'YMD', 'NONE'); ?>

これで以下のようになります。

FormHelper#$optionsでは月の他に様々なリストを指定できるので、年を和暦表現する、任意の日のみ選択対象にするなど変更できます。

■指定できるリスト

$options['year']
$options['month']
$options['day']
$options['hour'] 時(12時間表現)
$options['hour24'] 時(24時間表現)
$options['minute']
$options['second']
$options['meridian'] 午前・午後

日時表現としては、FormHelper#time()、FormHelper#input()もありますが、これらも内部的には同じロジックを共有しているので、同じように指定ができます。

トラックバック:1

このエントリーのトラックバックURL
http://www.1x1.jp/blog/2008/04/cakephp_formheler_datetime_list.html/trackback
Listed below are links to weblogs that reference
CakePHP FormHelper#datetime()で年月日表示を変える from Shin x blog
pingback from cakePHP で 日付時刻入力 « cakePHP,Subversion,Ajaxのメモ 09-10-31 (土) 20:42

[...] ここを参考に以下のようにしてみた。 [...]

Home > CakePHP | PHP > CakePHP FormHelper#datetime()で年月日表示を変える

検索
フィード
メタ情報

Return to page top