You are here

public function DateTimeComputed::getValue in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 core/modules/datetime/src/DateTimeComputed.php \Drupal\datetime\DateTimeComputed::getValue()

Gets the data value.

Return value

mixed

Overrides TypedData::getValue

File

core/modules/datetime/src/DateTimeComputed.php, line 43
Contains \Drupal\datetime\DateTimeComputed.

Class

DateTimeComputed
A computed property for dates of date time field items.

Namespace

Drupal\datetime

Code

public function getValue($langcode = NULL) {
  if ($this->date !== NULL) {
    return $this->date;
  }
  $item = $this
    ->getParent();
  $value = $item->{$this->definition
    ->getSetting('date source')};
  $storage_format = $item
    ->getFieldDefinition()
    ->getSetting('datetime_type') == 'date' ? DATETIME_DATE_STORAGE_FORMAT : DATETIME_DATETIME_STORAGE_FORMAT;
  try {
    $date = DrupalDateTime::createFromFormat($storage_format, $value, DATETIME_STORAGE_TIMEZONE);
    if ($date instanceof DrupalDateTime && !$date
      ->hasErrors()) {
      $this->date = $date;
    }
  } catch (\Exception $e) {

    // @todo Handle this.
  }
  return $this->date;
}