2015-11-26 5 views
0

Я пытаюсь отформатировать итоговые суммы доходов, взятые из db, и используя класс NumberFormatter php с методом formatCurrency.Удаление символа валюты из formatCurrency

Однако я не хочу распечатывать настоящий символ евро/евро. Я просто хочу простое число с запятой и десятичной точкой.

Пример; 1234.56 следует отформатировать как 1,234,56 Текущий выход составляет € 1,234,56.

код я использую:

$array['total_revenue'] = $this 
    ->db 
    ->query($sql) 
    ->row_array()['SUM(booking_total)']; 

$formatter = new NumberFormatter('en_GB', NumberFormatter::CURRENCY); 

echo $formatter->formatCurrency($array['total_revenue'], 'EUR') . PHP_EOL; 

ли кто-нибудь есть какие-либо идеи о том, как я могу это исправить, чтобы удалить символ евро?

+2

Не могу просто изменить 'NumberFormatter :: CURRENCY' к' NumberFormatter :: DECIMAL'? –

+0

Почему бы не использовать number_format? –

+0

@MuratCemYALIN Это не изменит строку, чтобы использовать денежное форматирование локалей. –

ответ

1

Простое регулярное выражение - это быстрое решение проблемы. Пытаться;

$actual = $formatter->formatCurrency($array['total_revenue'], 'EUR') . PHP_EOL; 
$output = preg_replace('/[^0-9,"."]/', '', $actual); 
echo $output; 

Надеется, что это помогает

0

Вы можете использовать метод substr(), хотя я не уверен, что это был бы правильный способ сделать это. Как показано ниже:

echo substr($formatter->formatCurrency($array['total_revenue'], 'EUR'), 1) . PHP_EOL; 
Смежные вопросы