diff --git a/lib/Cake/Test/Case/View/Helper/FormHelperTest.php b/lib/Cake/Test/Case/View/Helper/FormHelperTest.php index 9da345458..d4ce34deb 100644 --- a/lib/Cake/Test/Case/View/Helper/FormHelperTest.php +++ b/lib/Cake/Test/Case/View/Helper/FormHelperTest.php @@ -2224,9 +2224,9 @@ class FormHelperTest extends CakeTestCase { 'type' => 'time', 'selected' => '18:15' )); - $this->assertRegExp('##', $result); - $this->assertRegExp('##', $result); - $this->assertRegExp('##', $result); + $this->assertContains('', $result); + $this->assertContains('', $result); + $this->assertContains('', $result); } /** @@ -2235,6 +2235,15 @@ class FormHelperTest extends CakeTestCase { * @return void */ public function testTimeSelectedWithInterval() { + $result = $this->Form->input('Model.start_time', array( + 'type' => 'time', + 'interval' => 15, + 'selected' => '2012-10-23 15:57:00' + )); + $this->assertContains('', $result); + $this->assertContains('', $result); + $this->assertContains('', $result); + $result = $this->Form->input('Model.start_time', array( 'timeFormat' => 24, 'type' => 'time', @@ -5621,26 +5630,11 @@ class FormHelperTest extends CakeTestCase { $this->Form->request->data['Model']['field'] = ''; $result = $this->Form->hour('Model.field', true, array('value' => '23')); - $expected = array( - array('select' => array('name' => 'data[Model][field][hour]', 'id' => 'ModelFieldHour')), - array('option' => array('value' => '')), - '/option', - array('option' => array('value' => '00')), - '0', - '/option', - array('option' => array('value' => '01')), - '1', - '/option', - array('option' => array('value' => '02')), - '2', - '/option', - $hoursRegex, - array('option' => array('value' => '23', 'selected' => 'selected')), - '23', - '/option', - '/select', - ); - $this->assertTags($result, $expected); + $this->assertContains('', $result); + + $result = $this->Form->hour('Model.field', false, array('value' => '23')); + $this->assertContains('', $result); + $this->Form->request->data['Model']['field'] = '2006-10-10 00:12:32'; $result = $this->Form->hour('Model.field', true); diff --git a/lib/Cake/View/Helper/FormHelper.php b/lib/Cake/View/Helper/FormHelper.php index 301acaaec..ea843e4ae 100644 --- a/lib/Cake/View/Helper/FormHelper.php +++ b/lib/Cake/View/Helper/FormHelper.php @@ -2042,6 +2042,11 @@ class FormHelper extends AppHelper { } elseif ($attributes['value'] === false) { $attributes['value'] = null; } + + if ($attributes['value'] > 12 && !$format24Hours) { + $attributes['value'] -= 12; + } + return $this->select( $fieldName . ".hour", $this->_generateOptions($format24Hours ? 'hour24' : 'hour'), @@ -2206,10 +2211,7 @@ class FormHelper extends AppHelper { if (!empty($timeFormat)) { $time = explode(':', $days[1]); - if (($time[0] > 12) && $timeFormat == '12') { - $time[0] = $time[0] - 12; - $meridian = 'pm'; - } elseif ($time[0] == '12' && $timeFormat == '12') { + if ($time[0] >= '12' && $timeFormat == '12') { $meridian = 'pm'; } elseif ($time[0] == '00' && $timeFormat == '12') { $time[0] = 12;