public static Datetime::valueCallback(&$element, $input, FormStateInterface $form_state)
Determines how user input is mapped to an element's #value property.
Parameters
array $element: An associative array containing the properties of the element.
mixed $input: The incoming input to populate the form element. If this is FALSE, the element's default value should be returned.
\Drupal\Core\Form\FormStateInterface $form_state: The current state of the form.
Return value
mixed The value to assign to the element.
Overrides FormElement::valueCallback
File
- core/lib/Drupal/Core/Datetime/Element/Datetime.php, line 70
Class
- Datetime
- Provides a datetime element.
Namespace
Drupal\Core\Datetime\Element
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | public static function valueCallback(& $element , $input , FormStateInterface $form_state ) { if ( $input !== FALSE) { $date_input = $element [ '#date_date_element' ] != 'none' && ! empty ( $input [ 'date' ]) ? $input [ 'date' ] : '' ; $time_input = $element [ '#date_time_element' ] != 'none' && ! empty ( $input [ 'time' ]) ? $input [ 'time' ] : '' ; $date_format = $element [ '#date_date_element' ] != 'none' ? static ::getHtml5DateFormat( $element ) : '' ; $time_format = $element [ '#date_time_element' ] != 'none' ? static ::getHtml5TimeFormat( $element ) : '' ; $timezone = ! empty ( $element [ '#date_timezone' ]) ? $element [ '#date_timezone' ] : NULL; // Seconds will be omitted in a post in case there's no entry. if (! empty ( $time_input ) && strlen ( $time_input ) == 5) { $time_input .= ':00' ; } try { $date_time_format = trim( $date_format . ' ' . $time_format ); $date_time_input = trim( $date_input . ' ' . $time_input ); $date = DrupalDateTime::createFromFormat( $date_time_format , $date_time_input , $timezone ); } catch (\Exception $e ) { $date = NULL; } $input = array ( 'date' => $date_input , 'time' => $time_input , 'object' => $date , ); } else { $date = $element [ '#default_value' ]; if ( $date instanceof DrupalDateTime && ! $date ->hasErrors()) { $input = array ( 'date' => $date ->format( $element [ '#date_date_format' ]), 'time' => $date ->format( $element [ '#date_time_format' ]), 'object' => $date , ); } else { $input = array ( 'date' => '' , 'time' => '' , 'object' => NULL, ); } } return $input ; } |
Please login to continue.