Formatter currency

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
jakiro
Сообщения: 553
Зарегистрирован: 2013.03.05, 15:15

Formatter currency

Сообщение jakiro »

Добра, кто-нибудь вообще пытался работать с валютами в Formatter?
Пытаюсь отформатировать в asCurrency()вид числа, форматтер реагирует как попало:

Код: Выделить всё

    'formatter' => [
      'dateFormat' => 'dd.MM.yyyy',
      'timeFormat' => 'H:mm',
      'datetimeFormat' => 'd.MM.yyyy H:mm',
//      'decimalSeparator' => '.',
//      'thousandSeparator' => ' ',
      'currencyCode' => 'RUR',
      'numberFormatterSymbols' => [
        NumberFormatter::CURRENCY_SYMBOL => '₸',
      ],
      'numberFormatterOptions' => [
        NumberFormatter::MIN_FRACTION_DIGITS => 1,
        NumberFormatter::MAX_FRACTION_DIGITS => 3,
      ]
    ],
dateFormat, timeFormat и прочие всегда пожалуйста, все что касается формата числа — не реагирует.
Intl version 1.1.0
Formatter реагирует только на currencyCode, USD, RUR, EUR
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Formatter currency

Сообщение andku83 »

Такой же вопрос:

Код: Выделить всё

'components' => [
    'formatter'=>[
        'class'=>\yii\i18n\Formatter::className(),
        'dateFormat' => 'long',
        'currencyCode' => 'UAH',
        'decimalSeparator' => '.',
        'thousandSeparator' => ' ',
        'numberFormatterOptions' => [
            NumberFormatter::DECIMAL_SEPARATOR_SYMBOL => '.',
            NumberFormatter::MAX_FRACTION_DIGITS => 0,
            NumberFormatter::FRACTION_DIGITS => 0,
        ],
        'nullDisplay' => '',
    ],
],
Вызов:

Код: Выделить всё

<?= Yii::$app->formatter->asCurrency($model->getPriceUAH()) ?>
<?= Yii::$app->formatter->asCurrency($model->getPriceUSD(), 'usd') ?>
Изменения видны только по параметру thousandSeparator.

Так выглядит dump Formatter'a перед выводом результата:

Код: Выделить всё

object(yii\i18n\Formatter)#352 (20) {
    ["nullDisplay"] => string(0) ""
    ["booleanFormat"] => array(2) {
        [0] => string(6) "Нет"
         [1] => string(4) "Да"
    }
    ["locale"] => string(5) "ru-RU"
    ["timeZone"] => string(11) "Europe/Kiev"
    ["defaultTimeZone"] => string(3) "UTC"
    ["dateFormat"] => string(4) "long"
    ["timeFormat"] => string(6) "medium"
    ["datetimeFormat"] => string(6) "medium"
    ["calendar"] => NULL
    ["decimalSeparator"] => string(1) "."
    ["thousandSeparator"] => string(1) " "
    ["numberFormatterOptions"] => array(3) {
        [0] => string(1) "."
        [6] => int(0)
        [8] => int(0)
    }
    ["numberFormatterTextOptions"] => array(0) {
    }
    ["numberFormatterSymbols"] => array(0) {
    }
    ["currencyCode"] => string(3) "UAH"
    ["sizeFormatBase"] => int(1024)
    ["_intlLoaded":"yii\i18n\Formatter":private] => bool(true)
    ["_dateFormats":"yii\i18n\Formatter":private] => array(4) {
        ["short"] => int(3)
        ["medium"] => int(2)
        ["long"] => int(1)
        ["full"] => int(0)
    }
    ["_events":"yii\base\Component":private] => array(0) {
    }
    ["_behaviors":"yii\base\Component":private] => NULL
} 
вроде все параметры установлены, а результат не соответствует:

Код: Выделить всё

16 012,00 ₴
606,52 $
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Formatter currency

Сообщение andku83 »

Так что про asCurrency никто ничего не может сказать?
Нужно придумывать свой Formatter?
andku83
Сообщения: 988
Зарегистрирован: 2016.07.01, 10:24
Откуда: Харьков

Re: Formatter currency

Сообщение andku83 »

Спасибо, теперь бы еще понять когда это появится в стабильной версии.
Аватара пользователя
rugabarbo
Сообщения: 1063
Зарегистрирован: 2015.06.21, 16:21
Контактная информация:

Re: Formatter currency

Сообщение rugabarbo »

Чёткого графика выпуска версий нет.
Аватара пользователя
rugabarbo
Сообщения: 1063
Зарегистрирован: 2015.06.21, 16:21
Контактная информация:

Re: Formatter currency

Сообщение rugabarbo »

Сделайте свою репку yii2 на github и подключите её к своей разработке вместо оригинального yii2. Сможете сделать свою ветку и внести туда этот патч.
Ответить