function Datetime::getInfo

Same name in other branches
  1. 9 core/lib/Drupal/Core/Datetime/Element/Datetime.php \Drupal\Core\Datetime\Element\Datetime::getInfo()
  2. 8.9.x core/lib/Drupal/Core/Datetime/Element/Datetime.php \Drupal\Core\Datetime\Element\Datetime::getInfo()
  3. 10 core/lib/Drupal/Core/Datetime/Element/Datetime.php \Drupal\Core\Datetime\Element\Datetime::getInfo()

Overrides ElementInterface::getInfo

File

core/lib/Drupal/Core/Datetime/Element/Datetime.php, line 30

Class

Datetime
Provides a datetime element.

Namespace

Drupal\Core\Datetime\Element

Code

public function getInfo() {
    $date_format = '';
    $time_format = '';
    // Date formats cannot be loaded during install or update.
    if (!defined('MAINTENANCE_MODE')) {
        if ($date_format_entity = DateFormat::load('html_date')) {
            
            /** @var \Drupal\Core\Datetime\DateFormatInterface $date_format_entity */
            $date_format = $date_format_entity->getPattern();
        }
        if ($time_format_entity = DateFormat::load('html_time')) {
            
            /** @var \Drupal\Core\Datetime\DateFormatInterface $time_format_entity */
            $time_format = $time_format_entity->getPattern();
        }
    }
    $class = static::class;
    // Note that since this information is cached, the #date_timezone property
    // is not set here, as this needs to vary potentially by-user.
    return [
        '#input' => TRUE,
        '#element_validate' => [
            [
                $class,
                'validateDatetime',
            ],
        ],
        '#process' => [
            [
                $class,
                'processDatetime',
            ],
            [
                $class,
                'processAjaxForm',
            ],
            [
                $class,
                'processGroup',
            ],
        ],
        '#pre_render' => [
            [
                $class,
                'preRenderGroup',
            ],
        ],
        '#theme' => 'datetime_form',
        '#theme_wrappers' => [
            'datetime_wrapper',
        ],
        '#date_date_format' => $date_format,
        '#date_date_element' => 'date',
        '#date_date_callbacks' => [],
        '#date_time_format' => $time_format,
        '#date_time_element' => 'time',
        '#date_time_callbacks' => [],
        '#date_year_range' => '1900:2050',
        '#date_increment' => 1,
    ];
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.