Class DateTimeWidget
Input widget class for generating a date time input widget.
This class is usually used internally by Cake\View\Helper\FormHelper,
it but can be used to generate standalone date time inputs.
Property Summary
-
$_templates protected
Cake\View\StringTemplateTemplate instance.
-
$defaultStep protected
arrayStep size for various input types.
-
$defaults protected
arrayData defaults.
-
$formatMap protected
string[]Formats for various input types.
Method Summary
-
__construct() public
Constructor.
-
formatDateTime() protected
Formats the passed date/time value into required string format.
-
mergeDefaults() protected
Merge default values with supplied data.
-
render() public
Render a date / time form widget.
-
secureFields() public
Returns a list of fields that need to be secured for this widget.
-
setMaxLength() protected
Set value for "maxlength" attribute if applicable.
-
setRequired() protected
Set value for "required" attribute if applicable.
-
setStep() protected
Set value for "step" attribute if applicable.
Method Detail
__construct() ¶ public
__construct(Cake\View\StringTemplate $templates)
Constructor.
Parameters
-
Cake\View\StringTemplate$templates Templates list.
formatDateTime() ¶ protected
formatDateTime(string|int|DateTime|null $value, array $options): string
Formats the passed date/time value into required string format.
Parameters
-
string|int|DateTime|null$value Value to deconstruct.
-
array$options Options for conversion.
Returns
stringThrows
InvalidArgumentExceptionIf invalid input type is passed.
mergeDefaults() ¶ protected
mergeDefaults(array $data, Cake\View\Form\ContextInterface $context): array
Merge default values with supplied data.
Parameters
-
array$data Data array
-
Cake\View\Form\ContextInterface$context Context instance.
Returns
arrayUpdated data array.
render() ¶ public
render(array $data, Cake\View\Form\ContextInterface $context): string
Render a date / time form widget.
Data supports the following keys:
nameThe name attribute.valThe value attribute.escapeSet to false to disable escaping on all attributes.typeA valid HTML date/time input type. Defaults to "datetime-local".timezoneThe timezone the input value should be converted to.stepThe "step" attribute. Defaults to1for "time" and "datetime-local" type inputs. You can set it tonullorfalseto prevent explicit step attribute being added in HTML.formatAdate()function compatible datetime format string. By default the widget will use a suitable format based on the input type and database type for the context. If an explicit format is provided, then no default value will be set for thestepattribute, and it needs to be explicitly set if required.
All other keys will be converted into HTML attributes.
Parameters
-
array$data The data to build a file input with.
-
Cake\View\Form\ContextInterface$context The current form context.
Returns
stringHTML elements.
secureFields() ¶ public
secureFields(array $data): string[]
Returns a list of fields that need to be secured for this widget.
Parameters
-
array$data
Returns
string[]setMaxLength() ¶ protected
setMaxLength(array $data, Cake\View\Form\ContextInterface $context, string $fieldName): array
Set value for "maxlength" attribute if applicable.
Parameters
-
array$data Data array
-
Cake\View\Form\ContextInterface$context Context instance.
-
string$fieldName Field name.
Returns
arrayUpdated data array.
setRequired() ¶ protected
setRequired(array $data, Cake\View\Form\ContextInterface $context, string $fieldName): array
Set value for "required" attribute if applicable.
Parameters
-
array$data Data array
-
Cake\View\Form\ContextInterface$context Context instance.
-
string$fieldName Field name.
Returns
arrayUpdated data array.
setStep() ¶ protected
setStep(array $data, Cake\View\Form\ContextInterface $context, string $fieldName): array
Set value for "step" attribute if applicable.
Parameters
-
array$data Data array
-
Cake\View\Form\ContextInterface$context Context instance.
-
string$fieldName Field name.
Returns
arrayUpdated data array.
Property Detail
$defaultStep ¶ protected
Step size for various input types.
If not set, defaults to browser default.
Type
array