public function HijriFormatter::format in Hijri 8.2
Same name and namespace in other branches
- 3.0.x src/HijriFormatter.php \Drupal\hijri\HijriFormatter::format()
- 1.0.x src/HijriFormatter.php \Drupal\hijri\HijriFormatter::format()
Formats a date, using a date type or a custom date format string.
Parameters
int $timestamp: A UNIX timestamp to format.
string $type: (optional) The format to use, one of:
- One of the built-in formats: 'short', 'medium', 'long', 'html_datetime', 'html_date', 'html_time', 'html_yearless_date', 'html_week', 'html_month', 'html_year'.
- The name of a date type defined by a date format config entity.
- The machine name of an administrator-defined date format.
- 'custom', to use $format.
Defaults to 'medium'.
string $format: (optional) If $type is 'custom', a PHP date format string suitable for input to date(). Use a backslash to escape ordinary text, so it does not get interpreted as date format characters.
string|null $timezone: (optional) Time zone identifier, as described at http://php.net/manual/timezones.php Defaults to the time zone used to display the page.
string|null $langcode: (optional) Language code to translate to. NULL (default) means to use the user interface language for the page.
Return value
string A translated date string in the requested format. Since the format may contain user input, this value should be escaped when output.
Overrides DateFormatter::format
File
- src/
HijriFormatter.php, line 103
Class
- HijriFormatter
- Provides a service to handle Hijri date related functionality.
Namespace
Drupal\hijriCode
public function format($timestamp, $type = 'medium', $format = '', $timezone = NULL, $langcode = NULL) {
// @TODO: We have to get the correction value as a parameter.
$correction = 0;
if (!isset($timezone)) {
$timezone = date_default_timezone_get();
// @TODO: We have to read the correction value from module config.
$correction = 0;
}
// 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();
}
// 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();
}
// Use Ar-php date.
return $this
->hijri($format, $timestamp, $correction);
// Create a DrupalDateTime object from the timestamp and timezone.
$create_settings = [
'langcode' => $langcode,
'country' => $this
->country(),
];
// Call $date->format().
$settings = [
'langcode' => $langcode,
];
return $date
->format($format, $settings);
}