7f0dee2c31dda8d7d2ce335379fbb39f608df8b0
[yaffs-website] / web / core / modules / datetime / src / Plugin / Field / FieldFormatter / DateTimePlainFormatter.php
1 <?php
2
3 namespace Drupal\datetime\Plugin\Field\FieldFormatter;
4
5 use Drupal\Core\Field\FieldItemListInterface;
6 use Drupal\datetime\Plugin\Field\FieldType\DateTimeItem;
7
8 /**
9  * Plugin implementation of the 'Plain' formatter for 'datetime' fields.
10  *
11  * @FieldFormatter(
12  *   id = "datetime_plain",
13  *   label = @Translation("Plain"),
14  *   field_types = {
15  *     "datetime"
16  *   }
17  *)
18  */
19 class DateTimePlainFormatter extends DateTimeFormatterBase {
20
21   /**
22    * {@inheritdoc}
23    */
24   public function viewElements(FieldItemListInterface $items, $langcode) {
25     $elements = [];
26
27     foreach ($items as $delta => $item) {
28       if (!empty($item->date)) {
29         /** @var \Drupal\Core\Datetime\DrupalDateTime $date */
30         $date = $item->date;
31
32         $elements[$delta] = $this->buildDate($date);
33       }
34     }
35
36     return $elements;
37   }
38
39   /**
40    * {@inheritdoc}
41    */
42   protected function formatDate($date) {
43     $format = $this->getFieldSetting('datetime_type') == DateTimeItem::DATETIME_TYPE_DATE ? DATETIME_DATE_STORAGE_FORMAT : DATETIME_DATETIME_STORAGE_FORMAT;
44     $timezone = $this->getSetting('timezone_override');
45     return $this->dateFormatter->format($date->getTimestamp(), 'custom', $format, $timezone != '' ? $timezone : NULL);
46   }
47
48 }