/**
  * Convert from localized value for internal usage
  *
  * @param string $value
  * @param string $type
  * @param string $inputDateFormat (Intl date format - http://www.php.net/manual/en/book.intl.php)
  * @param string $outputDateFormat (php date format)
  * @param string $locale
  * @return mixed
  */
 public static function convertFromLocalizedValue($value, $type, $inputDateFormat = IntlDateFormatter::MEDIUM, $outputDateFormat = 'Y-m-d', $locale = null)
 {
     if (!$value) {
         return $value;
     }
     switch ($type) {
         case 'float':
             $filter = new NumberFormat();
             return $filter->filter($value);
         case 'date':
         case 'date_unixtime':
             $dateFormater = new IntlDateFormatter($locale ? $locale : self::getLocale(), $inputDateFormat, IntlDateFormatter::NONE, date_default_timezone_get(), IntlDateFormatter::GREGORIAN);
             return $type == 'date' ? date($outputDateFormat, $dateFormater->parse($value)) : $dateFormater->parse($value);
             // return timestamp
         // return timestamp
         default:
             return $value;
     }
 }
 /**
  * @param $locale
  * @param $style
  * @param $type
  * @param $value
  * @param $expected
  * @dataProvider formattedToNumberProvider
  */
 public function testFormattedToNumber($locale, $style, $type, $value, $expected)
 {
     $filter = new NumberFormatFilter($locale, $style, $type);
     $this->assertEquals($expected, $filter->filter($value));
 }
 /**
  * Format file size according to specified locale
  * @param int $size File size in [B] bytes
  * @param string $locale name of locale settings
  * @param string $emptyValue waht is returned if $size is empty or zero
  * @return string value and unit
  *
  * @assert (1024, 'pl_PL') == '1 kB'
  * @assert (356, 'pl_PL') == '356 B'
  * @assert (6587, 'pl_PL') == '6,43 kB'
  */
 public static function formatFileSize($size, $locale, $emptyValue = '-')
 {
     $sizes = array(' B', ' kB', ' MB', ' GB', ' TB', ' PB');
     if (is_null($size) || $size == 0) {
         return $emptyValue;
     }
     $precision = 2;
     if ($size == (int) $size && $size < 1024) {
         // < 1MB
         $precision = 0;
     }
     $size = round($size / pow(1024, $i = floor(log($size, 1024))), $precision);
     if (class_exists('\\NumberFormatter')) {
         $filter = new \Zend\I18n\Filter\NumberFormat($locale, NumberFormatter::DECIMAL, NumberFormatter::TYPE_DOUBLE);
         return $filter->filter($size) . $sizes[$i];
     }
     return $size . $sizes[$i];
 }
Example #4
0
 /**
  * @dataProvider returnUnfilteredDataProvider
  * @return void
  */
 public function testReturnUnfiltered($input)
 {
     $filter = new NumberFormatFilter('de_AT', NumberFormatter::DEFAULT_STYLE, NumberFormatter::TYPE_DOUBLE);
     $this->assertEquals($input, $filter->filter($input));
 }