/** * @expectedException \Symfony\Component\Intl\Exception\NotImplementedException */ public function testFormatWithUnimplementedChars() { $pattern = 'Y'; $formatter = new IntlDateFormatter('en', IntlDateFormatter::MEDIUM, IntlDateFormatter::SHORT, 'UTC', IntlDateFormatter::GREGORIAN, $pattern); $formatter->format(0); }
/** * Returns formatted date/time, correspondent to a given language. * The given date should be in the timezone chosen by the administrator and/or user. Use api_get_local_time to get it. * * @author Patrick Cool <*****@*****.**>, Ghent University * @author Christophe Gesche<*****@*****.**> * originally inspired from from PhpMyAdmin * @author Ivan Tcholakov, 2009, code refactoring, adding support for predefined date/time formats. * @author Guillaume Viguier <*****@*****.**> * * @param mixed Timestamp or datetime string * @param mixed Date format (string or int; see date formats in the Chamilo system: TIME_NO_SEC_FORMAT, DATE_FORMAT_SHORT, DATE_FORMAT_LONG, DATE_TIME_FORMAT_LONG) * @param string $language (optional) Language indentificator. If it is omited, the current interface language is assumed. * @return string Returns the formatted date. * * @link http://php.net/manual/en/function.strftime.php */ function api_format_date($time, $format = null, $language = null) { if (is_string($time)) { $time = strtotime($time); } if (is_null($format)) { $format = DATE_TIME_FORMAT_LONG; } $datetype = null; $timetype = null; if (is_int($format)) { switch ($format) { case DATE_FORMAT_ONLY_DAYNAME: $datetype = IntlDateFormatter::SHORT; $timetype = IntlDateFormatter::NONE; break; case DATE_FORMAT_NUMBER_NO_YEAR: $datetype = IntlDateFormatter::SHORT; $timetype = IntlDateFormatter::NONE; break; case DATE_FORMAT_NUMBER: $datetype = IntlDateFormatter::SHORT; $timetype = IntlDateFormatter::NONE; break; case TIME_NO_SEC_FORMAT: $datetype = IntlDateFormatter::NONE; $timetype = IntlDateFormatter::SHORT; break; case DATE_FORMAT_SHORT: $datetype = IntlDateFormatter::LONG; $timetype = IntlDateFormatter::NONE; break; case DATE_FORMAT_LONG: $datetype = IntlDateFormatter::FULL; $timetype = IntlDateFormatter::NONE; break; case DATE_TIME_FORMAT_LONG: $datetype = IntlDateFormatter::FULL; $timetype = IntlDateFormatter::SHORT; break; case DATE_FORMAT_LONG_NO_DAY: $datetype = IntlDateFormatter::FULL; $timetype = IntlDateFormatter::SHORT; break; case DATE_TIME_FORMAT_SHORT: $datetype = IntlDateFormatter::FULL; $timetype = IntlDateFormatter::SHORT; break; case DATE_TIME_FORMAT_SHORT_TIME_FIRST: $datetype = IntlDateFormatter::FULL; $timetype = IntlDateFormatter::SHORT; break; case DATE_TIME_FORMAT_LONG_24H: $datetype = IntlDateFormatter::FULL; $timetype = IntlDateFormatter::SHORT; break; default: $datetype = IntlDateFormatter::FULL; $timetype = IntlDateFormatter::SHORT; } } // Use ICU if (is_null($language)) { $language = api_get_language_isocode(); } $date_formatter = new IntlDateFormatter($language, $datetype, $timetype, date_default_timezone_get()); $formatted_date = api_to_system_encoding($date_formatter->format($time), 'UTF-8'); return $formatted_date; }