CakePHPの日時の日本語対応
Posted on | 2009/10/31 13:31:39 | Comments
今日はジョブの追加の日時入力の日本語化を行いました。新しいHelperを追加するという作業を始めてやりました。参考になるドキュメントがあって大変助かりました。
CakePHP Formヘルパの拡張 その1 日本語日付選択プルダウン : エクスギア Blog
views\helpers\jpform.php
<?php
class JpformHelper extends FormHelper {
// 日本語YMD形式の日付選択
function dateYMDHI($fieldName, $dateFormat = ‘DMY’ , $timeFormat = ‘12′, $selected = null, $attributes = array(), $showEmpty = true) {
if(!isset($this->options['month'])){
$this->options['month'] = array();
for ($i = 1 ; $i <= 12 ; $i++) {
$this->options['month'][sprintf("%02d", $i)] = $i;
}
}
$sep = array("","","");
$attributes['separator'] = "";
$sep = array(" 年 "," 月 "," 日 ");
$ret = parent::dateTime($fieldName, ‘YMD’, ‘12′, $selected, $attributes, $showEmpty);
$ret = preg_replace(’|</select>|’, ‘{/select}’.@$sep[0], $ret, 1);
$ret = preg_replace(’|</select>|’, ‘{/select}’.@$sep[1], $ret, 1);
$ret = preg_replace(’|</select>|’, ‘{/select}’.@$sep[2], $ret, 1);
$ret = str_replace(’{/select}’, ‘</select>’, $ret);
return $ret;
}
}
?>
contents_controller.php
var $helpers = array(’Html’, ‘Form’,'Jpform’);
views\contents\add.ctp
echo $jpform->dateYMDHI(’date’, ‘YMD’, ‘12′, null, array(), false);
という感じにしました。
ついでにjQuery UI DatePickerのカレンダー表示も日本語化しました。こちらはJSファイル開いて、Januaryとかで検索かけて、ゴリゴリ日本語に書き換えていけば良いですね。

