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

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

この記事の所要時間: 116

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

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

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

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

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

<?php
// 月を数字へ
$form->options['month'] = array();
for ($i = 1 ; $i <= 12 ; $i++) {
  $form->options['month'][$i] = sprintf("%02d", $i);  
}
?>
<?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()もありますが、これらも内部的には同じロジックを共有しているので、同じように指定ができます。

Pocket

follow us in feedly

トラックバック:1

このエントリーのトラックバックURL
/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