NumberFormatter :: formatCurrency未显示货币符号

时间:2015-04-30 12:39:26

标签: php currency intl numberformatter

我正在使用 NumberFormatter :: formatCurrency 来显示格式化的货币值,如下所示;

$value = 395;
$fmt = numfmt_create('en_GB', NumberFormatter::CURRENCY);
echo numfmt_format_currency($fmt, $value, 'gbp');

在我的Windows开发框和Centos UAT框中,输出所需的£395

但在生产Centos框中,它会输出 gbp395

知道缺少什么吗?我检查过intl扩展已启用。

我的语言环境文件可能有问题吗?当我输入

区域设置-a

在命令行中,我得到一长串的语言环境,其中en_GB是一个。

2 个答案:

答案 0 :(得分:0)

可能en_GB不是您系统上的有效区域设置。试试en_GB.UTF-8en_GB.ISO-8559-1 f.e。

答案 1 :(得分:0)

NumberFormatter类不正确,且GBP需要像大写一样:'GBP'

试试这个:

$value = 395;
$currencyFormat = new NumberFormatter('en_GB', NumberFormatter::CURRENCY);

echo $currencyFormat->formatCurrency($value, 'GBP');

这将呈现£395.00