diff --git a/src/View/Helper/FormHelper.php b/src/View/Helper/FormHelper.php
index a549bc6adae..436522061a5 100755
--- a/src/View/Helper/FormHelper.php
+++ b/src/View/Helper/FormHelper.php
@@ -1972,6 +1972,45 @@ protected function _datetimeOptions($options) {
return $options;
}
+/**
+ * Generate time inputs.
+ *
+ * ### Options:
+ *
+ * - `interval` The interval for the minutes select. Defaults to 1
+ * - `empty` - If true, the empty select option is shown. If a string,
+ * that string is displayed as the empty element.
+ * - `round` - Set to `up` or `down` if you want to force rounding in either direction. Defaults to null.
+ * - `value` | `default` The default value to be used by the input. A value in `$this->data`
+ * matching the field name will override this value. If no default is provided `time()` will be used.
+ * - `timeFormat` The time format to use, either 12 or 24.
+ * - `second` Set to true to enable seconds drop down.
+ *
+ * To control the order of inputs, and any elements/content between the inputs you
+ * can override the `dateWidget` template. By default the `dateWidget` template is:
+ *
+ * `{{month}}{{day}}{{year}}{{hour}}{{minute}}{{second}}{{meridian}}`
+ *
+ * @param string $fieldName Prefix name for the SELECT element
+ * @param array $options Array of Options
+ * @return string Generated set of select boxes for time formats chosen.
+ */
+ public function time($fieldName, $options = []) {
+ $options += [
+ 'empty' => true,
+ 'value' => null,
+ 'interval' => 1,
+ 'round' => null,
+ 'timeFormat' => 12,
+ 'second' => false,
+ ];
+ $options['year'] = $options['month'] = $options['day'] = false;
+ $options = $this->_initInputField($fieldName, $options);
+ $options = $this->_datetimeOptions($options);
+
+ return $this->widget('datetime', $options);
+ }
+
/**
* Sets field defaults and adds field to form security input hash.
* Will also add the error class if the field contains validation errors.
diff --git a/tests/TestCase/View/Helper/FormHelperTest.php b/tests/TestCase/View/Helper/FormHelperTest.php
index 7a74ac2ed22..379183691f5 100755
--- a/tests/TestCase/View/Helper/FormHelperTest.php
+++ b/tests/TestCase/View/Helper/FormHelperTest.php
@@ -3789,6 +3789,37 @@ public function testCheckboxHiddenField() {
$this->assertTags($result, $expected);
}
+/**
+ * Test the time type.
+ *
+ * @return void
+ */
+ public function testTime() {
+ $result = $this->Form->time('start_time', array(
+ 'timeFormat' => 12,
+ 'interval' => 5,
+ 'value' => array('hour' => '4', 'minute' => '30', 'meridian' => 'pm')
+ ));
+ $this->assertContains('', $result);
+ $this->assertContains('', $result);
+ $this->assertContains('', $result);
+ $this->assertNotContains('year', $result);
+ $this->assertNotContains('month', $result);
+ $this->assertNotContains('day', $result);
+
+ $result = $this->Form->time('start_time', array(
+ 'timeFormat' => 12,
+ 'interval' => 5,
+ 'value' => '2014-03-08 16:30:00'
+ ));
+ $this->assertContains('', $result);
+ $this->assertContains('', $result);
+ $this->assertContains('', $result);
+ $this->assertNotContains('year', $result);
+ $this->assertNotContains('month', $result);
+ $this->assertNotContains('day', $result);
+ }
+
/**
* testDateTime method
*