diff -u b/core/modules/datetime/src/Plugin/Field/FieldType/DateTimeFieldItemList.php b/core/modules/datetime/src/Plugin/Field/FieldType/DateTimeFieldItemList.php --- b/core/modules/datetime/src/Plugin/Field/FieldType/DateTimeFieldItemList.php +++ b/core/modules/datetime/src/Plugin/Field/FieldType/DateTimeFieldItemList.php @@ -61,9 +61,9 @@ '#states' => array( 'visible' => array( ':input[id="edit-default-value-input-default-date-type"]' => array('value' => static::DEFAULT_VALUE_CUSTOM), - ), - ), - ), + ) + ) + ) ); if ($this->getFieldDefinition()->getSetting('enddate_get')) { @@ -149,27 +149,28 @@ */ public static function processDefaultValue($default_value, FieldableEntityInterface $entity, FieldDefinitionInterface $definition) { $default_value = parent::processDefaultValue($default_value, $entity, $definition); - $default_date_type2 = $default_value[0]['default_date_type2']; + + $return = array(); if (isset($default_value[0]['default_date_type'])) { // A default value should be in the format and timezone used for date // storage. $date = new DrupalDateTime($default_value[0]['default_date'], DATETIME_STORAGE_TIMEZONE); - $storage_format = $definition->getSetting('datetime_type') == DateTimeItem::DATETIME_TYPE_DATE ? DATETIME_DATE_STORAGE_FORMAT : DATETIME_DATETIME_STORAGE_FORMAT; + $storage_format = $definition->getSetting('datetime_type') == DateTimeItem::DATETIME_TYPE_DATE ? DATETIME_DATE_STORAGE_FORMAT: DATETIME_DATETIME_STORAGE_FORMAT; $value = $date->format($storage_format); // We only provide a default value for the first item, as do all fields. // Otherwise, there is no way to clear out unwanted values on multiple value // fields. - $default_value = array( + $return = array( array( 'value' => $value, 'date' => $date, - ), + ) ); - } + } // Repeat for end date. - if ($definition->getSetting('enddate_get') && !empty($default_date_type2)) { + if ($definition->getSetting('enddate_get') && !empty($default_value[0]['default_date_type2'])) { // A default value should be in the format and timezone used for date // storage. $date = new DrupalDateTime($default_value[0]['default_date2'], DATETIME_STORAGE_TIMEZONE); @@ -178,12 +179,12 @@ // We only provide a default value for the first item, as do all fields. // Otherwise, there is no way to clear out unwanted values on multiple value // fields. - $default_value[0] += array( + $return[0] += array( 'value2' => $value, 'date2' => $date, ); } - return $default_value; + return empty($return) ? $default_value : $return; } }