Loading core/lib/Drupal/Core/Datetime/Plugin/Field/FieldWidget/TimestampDatetimeWidget.php +1 −2 Original line number Diff line number Diff line Loading @@ -25,8 +25,7 @@ class TimestampDatetimeWidget extends WidgetBase { * {@inheritdoc} */ public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, FormStateInterface $form_state) { $parent_entity = $items->getParent()->getValue(); $default_value = (!$parent_entity->isNew() && isset($items[$delta]->value)) ? DrupalDateTime::createFromTimestamp($items[$delta]->value) : ''; $default_value = isset($items[$delta]->value) ? DrupalDateTime::createFromTimestamp($items[$delta]->value) : ''; $element['value'] = $element + [ '#type' => 'datetime', '#default_value' => $default_value, Loading core/tests/Drupal/FunctionalTests/Datetime/TimestampTest.php +19 −0 Original line number Diff line number Diff line Loading @@ -152,6 +152,25 @@ public function testWidget() { $medium = DateFormat::load('medium')->getPattern(); $this->drupalGet('entity_test/' . $id); $this->assertSession()->pageTextContains($date->format($medium)); // Build up a date in the UTC timezone. $value = '2024-01-16 00:00:00'; $date = new DrupalDateTime($value, 'UTC'); // Set a default value for the field. $this->field->setDefaultValue($date->getTimestamp())->save(); // Update the timezone to the system default. $date->setTimezone(timezone_open(date_default_timezone_get())); $this->drupalGet('entity_test/add'); $date_format = DateFormat::load('html_date')->getPattern(); $time_format = DateFormat::load('html_time')->getPattern(); // Make sure the default field value is set as the default value in the widget. $this->assertSession()->fieldExists('field_timestamp[0][value][date]'); $this->assertSession()->fieldValueEquals('field_timestamp[0][value][date]', $date->format($date_format)); $this->assertSession()->fieldExists('field_timestamp[0][value][time]'); $this->assertSession()->fieldValueEquals('field_timestamp[0][value][time]', $date->format($time_format)); } } Loading
core/lib/Drupal/Core/Datetime/Plugin/Field/FieldWidget/TimestampDatetimeWidget.php +1 −2 Original line number Diff line number Diff line Loading @@ -25,8 +25,7 @@ class TimestampDatetimeWidget extends WidgetBase { * {@inheritdoc} */ public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, FormStateInterface $form_state) { $parent_entity = $items->getParent()->getValue(); $default_value = (!$parent_entity->isNew() && isset($items[$delta]->value)) ? DrupalDateTime::createFromTimestamp($items[$delta]->value) : ''; $default_value = isset($items[$delta]->value) ? DrupalDateTime::createFromTimestamp($items[$delta]->value) : ''; $element['value'] = $element + [ '#type' => 'datetime', '#default_value' => $default_value, Loading
core/tests/Drupal/FunctionalTests/Datetime/TimestampTest.php +19 −0 Original line number Diff line number Diff line Loading @@ -152,6 +152,25 @@ public function testWidget() { $medium = DateFormat::load('medium')->getPattern(); $this->drupalGet('entity_test/' . $id); $this->assertSession()->pageTextContains($date->format($medium)); // Build up a date in the UTC timezone. $value = '2024-01-16 00:00:00'; $date = new DrupalDateTime($value, 'UTC'); // Set a default value for the field. $this->field->setDefaultValue($date->getTimestamp())->save(); // Update the timezone to the system default. $date->setTimezone(timezone_open(date_default_timezone_get())); $this->drupalGet('entity_test/add'); $date_format = DateFormat::load('html_date')->getPattern(); $time_format = DateFormat::load('html_time')->getPattern(); // Make sure the default field value is set as the default value in the widget. $this->assertSession()->fieldExists('field_timestamp[0][value][date]'); $this->assertSession()->fieldValueEquals('field_timestamp[0][value][date]', $date->format($date_format)); $this->assertSession()->fieldExists('field_timestamp[0][value][time]'); $this->assertSession()->fieldValueEquals('field_timestamp[0][value][time]', $date->format($time_format)); } }