CakePHP1.2 HTMLヘルパーの日付コンボを年月日で表示する
CakePHPのHTMLヘルパーを使って年月日のコンボを表示する。
$form->dateTimeはseparatorを設定できるんだけど、「○○年○月○日」という形で表示したいのでヘルパーをカスタムする。
コントローラー
<?php $attr = array( 'minYear' => 2000, 'maxYear' => date('Y'), 'separator' => array('年', '月', '日'), 'monthNames' => false ); $this->set('attr', $attr); ?>
cake/libs/view/helpers/form.phpをapp/view/helpers/form.phpにコピーして以下の箇所を編集。
<?php // $opt = implode($separator, $selects); $opt = ""; $i = 0; if (is_array($separator)) { foreach($selects as $select) { $opt .= $select.$separator[$i]; $i++; } } else { $opt = implode($separator, $selects); } ?>
ビュー
<?php echo $form->dateTime('App.publication_date', 'YMD', 'NONE', date('Y-m-d'), $attr); ?>
参考にさせていただきました
http://www.syuhari.jp/blog/archives/192
http://monoko74.blog90.fc2.com/blog-entry-8.html
http://www.happyquality.com/2009/02/21/797.htm