getFieldSetting('datetime_type') == DateTimeItem::DATETIME_TYPE_DATE) { // A date without time will pick up the current time, use the default. datetime_date_default_time($date); } $this->setTimeZone($date); $build = [ '#plain_text' => $this->formatDate($date), '#cache' => [ 'contexts' => [ 'timezone', ], ], ]; return $build; } /** * Creates a render array from a date object with ISO date attribute. * * @param \Drupal\Core\Datetime\DrupalDateTime $date * A date object. * * @return array * A render array. */ protected function buildDateWithIsoAttribute(DrupalDateTime $date) { if ($this->getFieldSetting('datetime_type') == DateTimeItem::DATETIME_TYPE_DATE) { // A date without time will pick up the current time, use the default. datetime_date_default_time($date); } // Create the ISO date in Universal Time. $iso_date = $date->format("Y-m-d\TH:i:s") . 'Z'; $this->setTimeZone($date); $build = [ '#theme' => 'time', '#text' => $this->formatDate($date), '#html' => FALSE, '#attributes' => [ 'datetime' => $iso_date, ], '#cache' => [ 'contexts' => [ 'timezone', ], ], ]; return $build; } }