我正在使用 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是一个。
答案 0 :(得分:0)
可能en_GB
不是您系统上的有效区域设置。试试en_GB.UTF-8
或en_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