W3cubDocs

/CakePHP 4.4

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

Property Summary

  • $_templates protected
    Cake\View\StringTemplate

    Template instance.

  • $defaultStep protected
    array<string, mixed>

    Step size for various input types.

  • $defaults protected
    array<string, mixed>

    Data defaults.

  • $formatMap protected
    array<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(DateTime|string|int|null $value, array<string, mixed> $options): string

Formats the passed date/time value into required string format.

Parameters

DateTime|string|int|null $value

Value to deconstruct.

array<string, mixed> $options

Options for conversion.

Returns

string

Throws

InvalidArgumentException
If invalid input type is passed.

mergeDefaults() protected

mergeDefaults(array<string, mixed> $data, Cake\View\Form\ContextInterface $context): array<string, mixed>

Merge default values with supplied data.

Parameters

array<string, mixed> $data

Data array

Cake\View\Form\ContextInterface $context

Context instance.

Returns

array<string, mixed>

render() public

render(array<string, mixed> $data, Cake\View\Form\ContextInterface $context): string

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<string, mixed> $data

The data to build a file input with.

Cake\View\Form\ContextInterface $context

The current form context.

Returns

string

secureFields() public

secureFields(array<string, mixed> $data): array<string>

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

Parameters

array<string, mixed> $data

Returns

array<string>

setMaxLength() protected

setMaxLength(array<string, mixed> $data, Cake\View\Form\ContextInterface $context, string $fieldName): array<string, mixed>

Set value for "maxlength" attribute if applicable.

Parameters

array<string, mixed> $data

Data array

Cake\View\Form\ContextInterface $context

Context instance.

string $fieldName

Field name.

Returns

array<string, mixed>

setRequired() protected

setRequired(array<string, mixed> $data, Cake\View\Form\ContextInterface $context, string $fieldName): array<string, mixed>

Set value for "required" attribute if applicable.

Parameters

array<string, mixed> $data

Data array

Cake\View\Form\ContextInterface $context

Context instance.

string $fieldName

Field name.

Returns

array<string, mixed>

setStep() protected

setStep(array<string, mixed> $data, Cake\View\Form\ContextInterface $context, string $fieldName): array<string, mixed>

Set value for "step" attribute if applicable.

Parameters

array<string, mixed> $data

Data array

Cake\View\Form\ContextInterface $context

Context instance.

string $fieldName

Field name.

Returns

array<string, mixed>

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<string, mixed>

$defaults protected

Data defaults.

Type

array<string, mixed>

$formatMap protected

Formats for various input types.

Type

array<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.4/class-Cake.View.Widget.DateTimeWidget.html