У меня есть следующий фрагмент кода, который форматирует цену для данной локали и валюты (итальянский в этом примере, обычно это метод).
$locale = "it";
$currency = "USD";
$formatter = new \NumberFormatter($locale, \NumberFormatter::CURRENCY);
$priceInCents = 1100;
return $formatter->formatCurrency($priceInCents / 100, $currency);
Это возвращает:
US$ 12,29
Однако при использовании шведской локали (sv) код возвращает цену с двоеточием:
12:29 US$
Этого не происходит, когда я использую полную локаль «se_SE», но, к сожалению, у нас есть только двухбуквенная версия. Есть идеи? Это ошибка?
Для тех, кто заинтересован: вы можете использовать
NumberFormatter::MONETARY_GROUPING_SEPARATOR_SYMBOL
Других решений пока нет …