【CakePHP】Form::month()のの英語表記を数字にする

CakePHP 1.3.2】

【通常の解決策と、その問題点】
Formヘルパーのmonthメソッドについて。

echo $form->month('month');
上記だけでは、optionタグの中身がJanuary,February...と、
英語表記になってしまいます。
これを数字にする方法として、Cookbookでは'monthNames'属性を
falseにするようにと勧めています。

echo $form->month('month', null, array('monthNames' => false));
しかし、この方法では、optionタグの中身は01,02,03...と、
ひと桁の数字の頭にゼロがつけられてしまいます。
同じFormヘルパーのdayメソッドでは頭にゼロはつかないので、
生年月日を入力する場合などmonthとdayが並ぶ場合に、
どうにも統一が取れていなくて不恰好です。


【新たな解決策】
ライブラリのソースでは、下記のように、'monthNames'属性が
配列だった場合は、そのままoptionタグ用の材料として使う
ように記述されています。


【/cake/libs/view/helpers/form.php
if ($options['monthNames'] === true) {
$data['01'] = __('January', true);
$data['02'] = __('February', true);
$data['03'] = __('March', true);
$data['04'] = __('April', true);
$data['05'] = __('May', true);
$data['06'] = __('June', true);
$data['07'] = __('July', true);
$data['08'] = __('August', true);
$data['09'] = __('September', true);
$data['10'] = __('October', true);
$data['11'] = __('November', true);
$data['12'] = __('December', true);
} else if (is_array($options['monthNames'])) {
$data = $options['monthNames'];
} else {
//'monthNames' => falseの場合はこちらへ。
//『%m』は01〜12月のフォーマット指示子です。
for ($m = 1; $m <= 12; $m++) {
$data[sprintf("%02s", $m)] = strftime("%m", mktime(1, 1, 1, $m, 1, 1999));
}
}

ということで、自分の望む形式の配列を作り、monthメソッドに
渡します。


【ビュー】
$monthNames = array();
for ($m = 1; $m <= 12; $m++) {
$monthNames[sprintf("%02s", $m)] = $m;
}
echo $form->month('month', null, array('monthNames'=>$monthNames)).'月 ';
これで解決。


【感想】
ビューの中でいちいちfor文を書くのはめんどくさい…。
でも、monthメソッドを使う場面はごく限られているでしょうから。
ライブラリのform.phpを書き換えてもいいのでしょうが、
それは最終手段という気もしますし…。
やらずに済ませられるなら、そちらを選ぶべきだと思いました。