Same name and namespace in other branches
  1. 8.9.x core/lib/Drupal/Core/Datetime/DateFormatter.php \Drupal\Core\Datetime\DateFormatter::format()
  2. 9 core/lib/Drupal/Core/Datetime/DateFormatter.php \Drupal\Core\Datetime\DateFormatter::format()
1 call to DateFormatter::format()
DateFormatter::getSampleDateFormats in core/lib/Drupal/Core/Datetime/DateFormatter.php

File

core/lib/Drupal/Core/Datetime/DateFormatter.php, line 103

Class

DateFormatter
Provides a service to handle various date related functionality.

Namespace

Drupal\Core\Datetime

Code

public function format($timestamp, $type = 'medium', $format = '', $timezone = NULL, $langcode = NULL) {
  if (!isset($timezone)) {
    $timezone = date_default_timezone_get();
  }

  // Store DateTimeZone objects in an array rather than repeatedly
  // constructing identical objects over the life of a request.
  if (!isset($this->timezones[$timezone])) {
    $this->timezones[$timezone] = timezone_open($timezone);
  }
  if (empty($langcode)) {
    $langcode = $this->languageManager
      ->getCurrentLanguage()
      ->getId();
  }

  // Create a DrupalDateTime object from the timestamp and timezone.
  $create_settings = [
    'langcode' => $langcode,
    'country' => $this
      ->country(),
  ];
  $date = DrupalDateTime::createFromTimestamp($timestamp, $this->timezones[$timezone], $create_settings);

  // If we have a non-custom date format use the provided date format pattern.
  if ($type !== 'custom') {
    if ($date_format = $this
      ->dateFormat($type, $langcode)) {
      $format = $date_format
        ->getPattern();
    }
  }

  // Fall back to the 'medium' date format type if the format string is
  // empty, either from not finding a requested date format or being given an
  // empty custom format string.
  if (empty($format)) {
    $format = $this
      ->dateFormat('fallback', $langcode)
      ->getPattern();
  }

  // Call $date->format().
  $settings = [
    'langcode' => $langcode,
  ];
  return $date
    ->format($format, $settings);
}