Yii2-货币符号位置

时间:2019-05-16 13:58:58

标签: php yii2

在Yii2中,我正在使用Yii::$app->formatter->asCurrency($sellingPrice);函数来打印货币。由于语言环境是丹麦语,因此输出类似于

10,00 kr

现在我一直在尝试使用相同的功能来显示

kr 10,00 

但是我找不到方法。

documentation's方向是通过$numberFormatterOptions$numberFormatterTextOptions来设置这些选项,但没有关于为这些位置确切设置什么的指示

我尝试了其他尝试:

Yii::$app->formatter->asCurrency($modifier->getMoneyFormat('sellingPrice'), null, [NumberFormatter::PADDING_POSITION => NumberFormatter::PAD_BEFORE_PREFIX], [NumberFormatter::PADDING_POSITION => NumberFormatter::PAD_BEFORE_PREFIX]) 

但是这行不通。我还尝试将[NumberFormatter::PAD_BEFORE_PREFIX => true]传递给$numberFormatterOptions$numberFormatterTextOptions,但是两者都行不通。

我在做什么错?或者我应该如何实现呢?

1 个答案:

答案 0 :(得分:2)

更改语言或3个字母的ISO 4217货币代码:
示例:假设'numberFormatterSymbols'=>[\NumberFormatter::CURRENCY_SYMBOL => 'kr'],

Yii::$app->formatter->locale = 'en-US';
echo Yii::$app->formatter->asCurrency(1000); // output: kr1,000.

Yii::$app->formatter->locale = 'ru-RU';
echo Yii::$app->formatter->asCurrency(1000); // output: 1 000 kr.

\Yii::$app->language = ''; 

或在配置文件中

$config = [ // or  for locale
   'language' => 'ru_RU',  // Output: 1 000 kr
   'language' => 'en_US',  // Output: kr1,000
    //...
   'components' => [

      'formatter' => [
        'currencyCode' => 'RUB',
        'locale' => 'ru-RU',
        'numberFormatterSymbols'=>[\NumberFormatter::CURRENCY_SYMBOL => 'kr'],
      ],

     //...
  

3个字母的ISO 4217货币代码,指示用于asCurrency()的默认货币。如果未设置,将使用与$ locale对应的货币代码。请注意,在这种情况下,必须使用国家/地区代码指定$ locale,例如zh-CN,否则无法确定默认货币。

     

注意:Formatter类旨在用于格式化值   显示给不同语言和时区的用户。