在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
,但是两者都行不通。
我在做什么错?或者我应该如何实现呢?
答案 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类旨在用于格式化值 显示给不同语言和时区的用户。