立法会货币资讯科技_IT@utf8用PHP显示金额前的欧元符号
将区域设置信息设置为:立法会货币资讯科技_IT@utf8用PHP显示金额前的欧元符号,php,locale,Php,Locale,将区域设置信息设置为: $locale = 'it_IT'; $moneyFormat = '%n'; setlocale(LC_MONETARY, $locale.'.utf8'); $optionPrice = money_format($moneyFormat, floatval($option->optionPrice)); 价格如下所示: € 23 反而 23 € 我找到了区域设置标识符p_sign_posn来设置货币符号的位置,但我不知道如何修改它,显然,对于it区域设
$locale = 'it_IT';
$moneyFormat = '%n';
setlocale(LC_MONETARY, $locale.'.utf8');
$optionPrice = money_format($moneyFormat, floatval($option->optionPrice));
价格如下所示:
€ 23
反而
23 €
我找到了区域设置标识符p_sign_posn来设置货币符号的位置,但我不知道如何修改它,显然,对于it区域设置,它默认设置为1
谁能教我找到一个聪明的解决办法
提前谢谢
编辑:意大利地区显然已安装在系统上
vmamp@AMP30:~> locale -a | grep it
it_CH
it_CH.utf8
it_IT
it_IT.utf8
it_IT@euro
要使用区域设置感知功能,您必须在计算机上安装请求的区域设置。如果未显示请求的区域设置,则对
setlocale
的调用将失败,并且不会更改任何内容
例如,我安装了es\u es
locale,但没有安装it\u it
:
setlocale(LC_MONETARY, 'es_ES.utf8');
echo money_format($moneyFormat, floatval(12))
// ⇒ 12,00 €
setlocale(LC_MONETARY, 'en_US.utf8');
echo money_format($moneyFormat, floatval(12))
// ⇒ $12.00
setlocale(LC_MONETARY, 'it_IT.utf8');
echo money_format($moneyFormat, floatval(12))
// FAIL!!!
// ⇒ $12.00
如您所见,后一个调用被忽略(
setlocale
返回0
),因此您遇到的问题不是eurosign的位置;可能是缺少安装的it\u\it
l10n。对于意大利货币模式,您可以执行以下操作:
$money=substr(money_格式('.2n',$number),4)。'€'
给定的$number=77500
你得到
77.500,00€谢谢您的回复,我们已经考虑过这种情况,但是意大利的地点是合适的。我用这些信息编辑了我的问题。
_IT@euro
在区域设置列表中,我想到了正确显示欧元符号的方法。我们也尝试过这种区域设置,但货币仍然显示为23欧元。这似乎是正确的方式[,但我发现不同的意大利语页面的格式要求从我们的客户23欧元是的,我明白了。然后你可能需要黑客意大利语:(是的,这是我们要做的。谢谢你的评论