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.

Namespace: Cake\View\Widget

Properties summary

  • $_templates protected
    \Cake\View\StringTemplate

    Template instance.

  • $defaultStep protected
    array

    Step size for various input types.

  • $defaults protected
    array

    Data 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(mixed $value, array $options)

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

string

Throws

InvalidArgumentException
If invalid input type is passed.

mergeDefaults() protected

mergeDefaults(array $data, \Cake\View\Form\ContextInterface $context)

Merge default values with supplied data.

Parameters

array $data

Data array

\Cake\View\Form\ContextInterface $context

Context instance.

Returns

array

Updated data array.

render() public

render(array $data, \Cake\View\Form\ContextInterface $context)

Render a date / time form widget.

Data supports the following keys:

  • name The name attribute.
  • val The value attribute.
  • escape Set to false to disable escaping on all attributes.
  • type A valid HTML date/time input type. Defaults to "datetime-local".
  • timezone The timezone the input value should be converted to.
  • step The "step" attribute. Defaults to 1 for "time" and "datetime-local" type inputs. You can set it to null or false to prevent explicit step attribute being added in HTML.
  • format A date() 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 the step attribute, 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

string

HTML elements.

secureFields() public

secureFields(array $data)

Returns a list of fields that need to be secured for this widget.

Parameters

array $data

The data to render.

Returns

string[]

Array of fields to secure.

setMaxLength() protected

setMaxLength(array $data, \Cake\View\Form\ContextInterface $context, string $fieldName)

Set value for "maxlength" attribute if applicable.

Parameters

array $data

Data array

\Cake\View\Form\ContextInterface $context

Context instance.

string $fieldName

Field name.

Returns

array

Updated data array.

setRequired() protected

setRequired(array $data, \Cake\View\Form\ContextInterface $context, string $fieldName)

Set value for "required" attribute if applicable.

Parameters

array $data

Data array

\Cake\View\Form\ContextInterface $context

Context instance.

string $fieldName

Field name.

Returns

array

Updated data array.

setStep() protected

setStep(array $data, \Cake\View\Form\ContextInterface $context, string $fieldName)

Set value for "step" attribute if applicable.

Parameters

array $data

Data array

\Cake\View\Form\ContextInterface $context

Context instance.

string $fieldName

Field name.

Returns

array

Updated data array.

Property Detail

$_templates protected

Template instance.

Type

\Cake\View\StringTemplate

$defaultStep protected

Step size for various input types.

If not set, defaults to browser default.

Type

array

$defaults protected

Data defaults.

Type

array

$formatMap protected

Formats for various input types.

Type

string[]

© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/4.1/class-Cake.View.Widget.DateTimeWidget.html