PHP денежный формат с пробелами - PullRequest
10 голосов
/ 16 марта 2011

Мне интересно, есть ли способ разделить тысячи пробелами?

Например:

$number = 21234.56;
setlocale(LC_ALL, 'pl_PL.utf8');
echo money_format('%i', $number);

дает мне:

21.234,56 PLN

ИЯ хочу:

21 234,56 PLN

Я не хочу делать str_replace.Я уверен, что есть лучший способ.

Ответы [ 2 ]

19 голосов
/ 16 марта 2011

Вы можете использовать number-format.Например:

echo number_format($number, 2, ',', ' ');

Но вы должны будете поставить устройство самостоятельно.

В противном случае этот комментарий страницы документации money_format дает версиюФункция с некоторым кодом, который вы можете изменить, чтобы изменить разделитель тысяч.

Вы также можете сделать что-то вроде этого:

$locale = localeconv();
$text = money_format('%i', $number);
$text = str_replace($locale['mon_thousands_sep'], ' ', $text);
6 голосов
/ 16 марта 2011

см .: http://php.net/manual/en/function.number-format.php

string number_format ( float $number , int $decimals = 0 , string $dec_point = '.' , string $thousands_sep = ',' )

Для вашего случая:

number_format($number, 2, ',', ' ');
...