CakePHPのscaffoldでdatetimeなどの日時形式をカスタマイズする

CakePHPホント便利。そろそろ2.x系に移行しなくちゃと思って勉強しつつ、移行コストが億劫で1.3系も現役なうです。特に管理画面はscaffoldで事足りちゃうぐらい簡単なのが嬉しいんですけど、海外製なのでところどころ不便な事があります。例えば日時。date,datetime,timestamp型の場合、自動生成されるプルダウンが「月-日-年」の順番っていうだけでも馴染みがないのに、月のプルダウンは1〜12じゃなくてJanuary〜Decemberの英語名!これじゃあ英語ネイティブでもないとサクサク入力できません。うむむ。

ところが!さすがCake先生、カスタマイズしやすいようちゃんと用意されてます。手順は下記の通り。

1.cake/libs/view/scaffolds/edit.ctpをapp/views/scaffolds/edit.ctpにコピー

2.コードを下記のように編集

echo $this->Form->create();

となっている1行を

$options = array(
‘inputDefaults’ => array(‘dateFormat’ => ‘YMD’, ‘timeFormat’ => 24, ‘monthNames’ => null)
);
echo $this->Form->create(null, $options);

に変更します。これだけでdate型のプルダウンは年月日の順になり、月は英語名から数字になり、時間はAMとPMの12時間から24時間になります。他のオプションも設定できるので、minYearやmaxYearあたりを適宜設定してあげると使いやすくなるかもしれません。

最近はPHPのフレームワークでもFuelPHPなんかが活発になってきていて、CakePHPの行く先を案じつつも、割と細かいところに手が届いてくれるこの子をまだまだ手放せそうにないこの頃です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です