You are here

public function DateTimeNormalizer::normalize in JSON:API 8.2

1 call to DateTimeNormalizer::normalize()
DateTimeIso8601Normalizer::normalize in src/ForwardCompatibility/Normalizer/DateTimeIso8601Normalizer.php
Normalizes an object into a set of arrays/scalars.
2 methods override DateTimeNormalizer::normalize()
DateTimeIso8601Normalizer::normalize in src/ForwardCompatibility/Normalizer/DateTimeIso8601Normalizer.php
Normalizes an object into a set of arrays/scalars.
TimestampNormalizer::normalize in src/ForwardCompatibility/Normalizer/TimestampNormalizer.php
Normalizes an object into a set of arrays/scalars.

File

src/ForwardCompatibility/Normalizer/DateTimeNormalizer.php, line 48

Class

DateTimeNormalizer
Converts values for datetime objects to RFC3339 and from common formats.

Namespace

Drupal\jsonapi\ForwardCompatibility\Normalizer

Code

public function normalize($datetime, $format = NULL, array $context = []) {

  // @todo Remove when JSON:API only supports Drupal >=8.7, which fixed this in https://www.drupal.org/project/drupal/issues/3002164.
  $drupal_date_time = floatval(floatval(\Drupal::VERSION) >= 8.699999999999999) ? $datetime
    ->getDateTime() : ($datetime
    ->getValue() ? new DrupalDateTime($datetime
    ->getValue(), 'UTC') : NULL);
  if ($drupal_date_time === NULL) {
    return $drupal_date_time;
  }
  return $drupal_date_time
    ->setTimezone($this
    ->getNormalizationTimezone())
    ->format(\DateTime::RFC3339);
}