簡體   English   中英

LC_MONETARY it_IT @ utf8使用PHP在金額前顯示歐元符號

[英]LC_MONETARY it_IT@utf8 shows euro symbol before amount with PHP

將語言環境信息設置為:

$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_ES語言環境,但沒有it_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_IT l10n。

對於意大利貨幣模式,您可以執行以下操作:

$ money = substr(money_format('%。2n',$ number),4)。 €';

給定$ number = 77500

你得到

77.500,00€

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM