gpt4 book ai didi

CakePHP 2.2.3 FormHelper 在使用分钟间隔和默认分钟值时无法设置默认子午线

转载 作者:行者123 更新时间:2023-12-02 18:06:24 24 4
gpt4 key购买 nike

在我的应用程序中,以下内容预计会输出小时、分钟和子午线 <select> s 表示 12 小时时间,默认选择下午 4:30:

echo $this->Form->input('time_example', array(
'interval' => 5,
'timeFormat' => '12',
'type' => 'time',
'selected' => array(
'hour' => '4',
'min' => '30',
'meridian' => 'pm'
)
));

但默认选择的时间实际上显示为凌晨 4:30。

经过一番摆弄,我发现它会正确地默认为下午 4:30 if interval从选项中删除,如果 min 则它将正确默认为下午 4:00已从选项中删除。

我深入研究了 FormHelper.php,并在 FormHelper::dateTime() 中发现了这一点,从第 2246 行开始(在 CakePHP 版本 2.2.3 中):

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 发生冲突,但是$meridianthe assumption 覆盖那$hour采用 24 小时格式。这迫使$meridian对于 $hour 的任意值变为“am”小于 12,因此无法默认选择下午 4:30。

我是否错误地使用了助手,或者这是核心中的错误?

最佳答案

此错误已在 this merge 中得到纠正。 .

关于CakePHP 2.2.3 FormHelper 在使用分钟间隔和默认分钟值时无法设置默认子午线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15390026/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com