/** * Convert to localized value from internal format * * @param string $value * @param string $type * @param string $outputDateFormat (Intl date format - http://www.php.net/manual/en/book.intl.php) * @param string $locale * @return string */ public static function convertToLocalizedValue($value, $type, $outputDateFormat = IntlDateFormatter::MEDIUM, $locale = null) { if (!$value) { return $value; } switch ($type) { case 'float': $filter = new NumberFormat($locale ? $locale : self::getLocale()); $filter->getFormatter()->setAttribute(NumberFormatter::MAX_FRACTION_DIGITS, self::MAX_FRACTION_DIGITS); return $filter->filter((double) $value); case 'date': case 'date_unixtime': $dateFormater = new IntlDateFormatter($locale ? $locale : self::getLocale(), $outputDateFormat, IntlDateFormatter::NONE, date_default_timezone_get(), IntlDateFormatter::GREGORIAN); return $type == 'date' ? $dateFormater->format(strtotime($value)) : $dateFormater->format((int) $value); default: return $value; } }