タグ : dateTime

CakePHPで日付選択のセレクトボックスを「年月日」表示にしたい

CakePHPで日付選択のセレクトボックスを「年月日」表示にしたい

ということがあって調べたのでメモ。

CakePHP1.2用のものは見つかったのですが、

CakePHP2用のものが見つからなかったので、

以下の記事を参考にちょっと変更を加えました。

CakePHP1.2 HTMLヘルパーの日付コンボを年月日で表示する

コントローラーに以下を追加(1.2と同じ対応)。


$attr = array(
'minYear' => 2000,
'maxYear' => date('Y'),
'separator' => array('年', '月', '日'),
'monthNames' => false
);
$this->set('attr', $attr);
?>

lib/Cake/View/Helper/FormHelper.phpをapp/View/Helpler/にコピーして開きます。

public function dateTime内の以下の箇所を変更します。


$opt = implode($separator, $selects);

の1行を以下に置き換えます。

$opt = "";
$i = 0;
if (is_array($separator)) {
foreach($selects as $select) {
$opt .= $select.$separator[$i];
$i++;
}
} else {
$opt = implode($separator, $selects);
}

(これも変更内容は1.2と同じ)

ビューファイルに以下のように書きます。


echo $this->Form->dateTime('foo_date', 'YMD', 'NONE', $attr);