CalendarSystemsDateFormatter.php in Calendar Systems 8.2
File
src/Services/DateFormatter/CalendarSystemsDateFormatter.php
View source
<?php
namespace Drupal\calendar_systems\Services\DateFormatter;
use Drupal\Core\Datetime\DateFormatter;
use Drupal\calendar_systems\Helpers;
class CalendarSystemsDateFormatter extends DateFormatter {
public function format($timestamp, $type = 'medium', $format = '', $timezone = NULL, $langcode = NULL) {
$calendar_name = Helpers::calendar_systems_get_calendar_system_name();
$calendar = Helpers::calendar_systems_get_calendar_instance();
if ($calendar_name == 'default' || !$calendar || Helpers::shouldIgnoreCalendarSystemsDateConversion()) {
return parent::format($timestamp, $type, $format, $timezone, $langcode);
}
if (!isset($timezone)) {
$timezone = date_default_timezone_get();
}
if (!isset($this->timezones[$timezone])) {
$this->timezones[$timezone] = timezone_open($timezone);
}
$calendar
->setTimeZoneOffset($this->timezones[$timezone]
->getOffset());
if (empty($langcode)) {
$langcode = $this->languageManager
->getCurrentLanguage()
->getId();
}
if ($type !== 'custom') {
if ($date_format = $this
->dateFormat($type, $langcode)) {
$format = $date_format
->getPattern();
}
}
if (empty($format)) {
$format = $this
->dateFormat('fallback', $langcode)
->getPattern();
}
return $calendar
->timestampToStr($format, $timestamp + $this->timezones[$timezone]
->getOffset());
}
}