dateFormatter = $date_formatter; parent::__construct($configuration, $plugin_id, $plugin_definition); } /** * {@inheritdoc} */ public static function create(ContainerInterface $container, array $configuration, $plugin_id, $plugin_definition) { return new static( $configuration, $plugin_id, $plugin_definition, $container->get('date.formatter') ); } /** * {@inheritdoc} */ protected function defineOptions() { $options = parent::defineOptions(); $options['granularity'] = ['default' => 2]; return $options; } /** * {@inheritdoc} */ public function buildOptionsForm(&$form, FormStateInterface $form_state) { parent::buildOptionsForm($form, $form_state); $form['granularity'] = [ '#type' => 'textfield', '#title' => $this->t('Granularity'), '#description' => $this->t('How many different units to display in the string.'), '#default_value' => $this->options['granularity'], ]; } /** * {@inheritdoc} */ public function render(ResultRow $values) { $value = $values->{$this->field_alias}; return $this->dateFormatter->formatInterval($value, isset($this->options['granularity']) ? $this->options['granularity'] : 2); } }