/** Format and translate datetime format * @param DateTime|int|null $date Date to format. Takes current time if null. * @param string $format Format name or format directly * @param int $translate 0 for no translation, 1 for standart translation, 2 for special translation * @return string */ public function format_date($date, $format = 'std', $translate = self::TRANS_STD) { if (\System\Template::is_date($date)) { if (is_null($date)) { $date = new \DateTime(); } elseif (is_numeric($date)) { $helper = new \DateTime(); $helper->setTimestamp($date); $date = $helper; } $local_format = $this->trans('date-format-' . $format); $d = $date->format(is_null($local_format) ? $format : $local_format); if ($translate == self::TRANS_NONE) { return $d; } else { return $this->translate_date($d, $translate == self::TRANS_INF); } } else { throw new \System\Error\Argument(sprintf("Method format_date accepts only date type arguments. Instance of DateTime or utime number. '%s' was given.", gettype($date))); } }