Formのdateで月選択の0が気になる


CakePHPでFormのdatetimeを使ったときに、日付選択は「1,2,3・・・」なのに月選択が「01,02,03・・・」なのが気になります。月も「1,2,3・・・」にしましょう。

まず「lib/Cake/View/Helper/FormHelper.php」を 「app/View/Helper/FormHelper.php」にコピーして編集します。探してみると以下のようなところがありました。

case 'month':
  if ($options['monthNames'] === true) {
    $data['01'] = __d('cake', 'January');
    $data['02'] = __d('cake', 'February');
    $data['03'] = __d('cake', 'March');
    $data['04'] = __d('cake', 'April');
    $data['05'] = __d('cake', 'May');
    $data['06'] = __d('cake', 'June');
    $data['07'] = __d('cake', 'July');
    $data['08'] = __d('cake', 'August');
    $data['09'] = __d('cake', 'September');
    $data['10'] = __d('cake', 'October');
    $data['11'] = __d('cake', 'November');
    $data['12'] = __d('cake', 'December');
  } elseif (is_array($options['monthNames'])) {
    $data = $options['monthNames'];
  } else {
    for ($m = 1; $m <= 12; $m++) {
      $data[sprintf("%02s", $m)] = strftime("%m", mktime(1, 1, 1, $m, 1, 1999));
    }
  }
  break;

 数字で表示しているのはelseの部分ですね。以下のように編集しました。

$data[sprintf("%02s", $m)] = date("n", mktime(1, 1, 1, $m, 1, 1999));

投稿日時:2017年4月12日 10:45  更新日時:2017年4月12日 10:45


新着ブログ

2017年9月10日
NEWS PICKSでLikesをたくさん貰った話

2017年8月19日
人生の勝算

2017年6月14日
目的論が分からない