내 응용 프로그램에서 오후 4시 30 분을 선택하여 12 시간 동안시와 분, 자오선을 출력해야합니다. 기본적으로 :CakePHP 2.2.3 분 간격과 기본 분 값을 사용할 때 FormHelper에서 기본 자오선을 설정할 수 없음
echo $this->Form->input('time_example', array(
'interval' => 5,
'timeFormat' => '12',
'type' => 'time',
'selected' => array(
'hour' => '4',
'min' => '30',
'meridian' => 'pm'
)
));
그러나 실제로 선택한 기본 시간은 오전 4시 30 분으로 표시됩니다.
약간의 실수를 한 후, 옵션에서 interval
이 제거되면 오후 4시 30 분으로 올바르게 설정된다는 것을 발견했으며, 옵션에서 min
을 제거하면 정확하게 기본값은 오후 4 시가됩니다.
if (!empty($interval) && $interval > 1 && !empty($min)) {
$current = new DateTime();
if ($year !== null) {
$current->setDate($year, $month, $day);
}
if ($hour !== null) {
$current->setTime($hour, $min);
}
$change = (round($min * (1/$interval)) * $interval) - $min;
$current->modify($change > 0 ? "+$change minutes" : "$change minutes");
$newTime = explode(' ', $current->format('Y m d H i a'));
list($year, $month, $day, $hour, $min, $meridian) = $newTime;
}
이 나타납니다 모두 $interval
및 $min
가있는 경우 이 경우 $min
은 $interval
과 충돌하지 않지만 $meridian
은 the assumption으로 덮어 쓰며, $hour
은 24 시간 형식입니다. 이 경우 $hour
이 12보다 작 으면 $meridian
이 'am'이되어 16시 30 분의 기본 선택을 불가능하게 만듭니다.
도우미를 잘못 사용하고 있습니까, 아니면 핵심 오류입니까?
FormHelper의 인용 부호가있는 코드 블록이 최신 안정 릴리스 (2.3.1)에 있음을 확인했습니다. –
유효한 문제인 경우 티켓을 제출하십시오. 그것을 고치는 패치. 이것은 github pull 요청을 통해 수행 할 수 있습니다. – mark
https://github.com/cakephp/cakephp/commit/f1d192f282486273d68c7334a18ebbd6f724cfce로 해결 되었습니까? – mark