format($format)); } else { return $date->format($format); } } else { //use timezone $cmsOffset = Database::getCMSConfig('offset'); $timezone = new \DateTimeZone($cmsOffset); if (!is_numeric($cmsOffset)) { $cmsOffset = $timezone->getOffset(new \DateTime); } if ($translate) { return DateService::translateDate(date($format, strtotime($time) + $cmsOffset)); } else { return date($format, strtotime($time) + $cmsOffset); } } } public static function translateDate($date) { $map = [ 'January' => 'ACYC_JANUARY', 'February' => 'ACYC_FEBRUARY', 'March' => 'ACYC_MARCH', 'April' => 'ACYC_APRIL', 'May' => 'ACYC_MAY', 'June' => 'ACYC_JUNE', 'July' => 'ACYC_JULY', 'August' => 'ACYC_AUGUST', 'September' => 'ACYC_SEPTEMBER', 'October' => 'ACYC_OCTOBER', 'November' => 'ACYC_NOVEMBER', 'December' => 'ACYC_DECEMBER', 'Monday' => 'ACYC_MONDAY', 'Tuesday' => 'ACYC_TUESDAY', 'Wednesday' => 'ACYC_WEDNESDAY', 'Thursday' => 'ACYC_THURSDAY', 'Friday' => 'ACYC_FRIDAY', 'Saturday' => 'ACYC_SATURDAY', 'Sunday' => 'ACYC_SUNDAY', ]; foreach ($map as $english => $translationKey) { $translation = Language::translation($translationKey); if ($translation == $translationKey) { continue; } $date = preg_replace('#'.preg_quote($english).'( |,|$)#i', $translation.'$1', $date); $date = preg_replace('#'.preg_quote(substr($english, 0, 3)).'( |,|$)#i', mb_substr($translation, 0, 3).'$1', $date); } return $date; } }