You are here

public function TimestampAgoFormatter::settingsSummary in Drupal 9

Same name and namespace in other branches
  1. 8 core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/TimestampAgoFormatter.php \Drupal\Core\Field\Plugin\Field\FieldFormatter\TimestampAgoFormatter::settingsSummary()

Returns a short summary for the current formatter settings.

If an empty result is returned, a UI can still be provided to display a settings form in case the formatter has configurable settings.

Return value

string[] A short summary of the formatter settings.

Overrides FormatterBase::settingsSummary

File

core/lib/Drupal/Core/Field/Plugin/Field/FieldFormatter/TimestampAgoFormatter.php, line 138

Class

TimestampAgoFormatter
Plugin implementation of the 'timestamp' formatter as time ago.

Namespace

Drupal\Core\Field\Plugin\Field\FieldFormatter

Code

public function settingsSummary() {
  $summary = parent::settingsSummary();
  $future_date = new DrupalDateTime('1 year 1 month 1 week 1 day 1 hour 1 minute');
  $past_date = new DrupalDateTime('-1 year -1 month -1 week -1 day -1 hour -1 minute');
  $granularity = $this
    ->getSetting('granularity');
  $options = [
    'granularity' => $granularity,
    'return_as_object' => FALSE,
  ];
  $future_date_interval = new FormattableMarkup($this
    ->getSetting('future_format'), [
    '@interval' => $this->dateFormatter
      ->formatTimeDiffUntil($future_date
      ->getTimestamp(), $options),
  ]);
  $past_date_interval = new FormattableMarkup($this
    ->getSetting('past_format'), [
    '@interval' => $this->dateFormatter
      ->formatTimeDiffSince($past_date
      ->getTimestamp(), $options),
  ]);
  $summary[] = $this
    ->t('Future date: %display', [
    '%display' => $future_date_interval,
  ]);
  $summary[] = $this
    ->t('Past date: %display', [
    '%display' => $past_date_interval,
  ]);
  return $summary;
}