現在、cakephpでニュースリリース管理を作成しています。そこで、リリースの日付を入力するところがあるのですが、CakePHPのそのままのHtmlヘルパーを使って日付を入力してしまうと、日本人向けではないフォーマットで選択させてしまう。
例えば、
$option_datetime = array(
'type' => 'datetime',
'timeFormat'=> 24,
'dateFormat'=> 'YMD',
'legend' => false,
'label' => false,
'div' => false,
'interval' => 15,
);
echo $form->input('release_date', $option_datetime);
のようにする。
これだと、月が英文(”Januaru” ~”December”)で選択させる。dateFormat属性の指定は、date()のfomartになるかと思えば違っていた。仕方ないので、formヘルパー(/cake/libs/view/helpers/form.php)に手を入れようとした。しかし、FormHelperクラスの__generateOptionsメソッドのこの部分
を見ると、マニュアルにないmonthNames属性があることがわかる。上記の$option_datetimeに
'monthNames' => false,
を追加すれば、月が’01’~’12’になる。ソースは読んでみるものだ。
しかし、このソースを書いた人は、date()を頭にないような感じがする。本当ならば、dateFormat属性がdate()のフォーマット指定のように振る舞えればいいのだが。