Angel
Angel

Reputation: 357

Change format of money Postgresql

I have a Postgre DB and one of these values are money (type, ofc). When I do the Select using PHP, the output of that query is in this format:

Example: €1,00

I'm looking for something to change this format to this other:

Example: 1,00€.

What can I change in my query to get last one result?

Thanks!

Upvotes: 1

Views: 2319

Answers (3)

Martin Fric
Martin Fric

Reputation: 730

If its stored in database just like a number without currency you could just use function number_format($x,y,'.','')

where $x is your number y is number of numbers behind decimal separator '.' - means decimal separator is . '' -means there is no separator between thousands

so u just format your number in a way u want and add "euro" sign.

if its price there is a function called money format :

u must use it with locales of country the currency u want fe. :

setlocale(LC_MONETARY, 'de_DE'); echo money_format('%.2n', $your_variable);

this means u use currency of germany. '%.2n' means your output is from $yourvariable and have 2 decimalnumbers

And to the thing of 'euro' sign after or before number. It depends of locales. I think slovak or spanish has euro sign after number.

Try it.

Upvotes: 1

Abela
Abela

Reputation: 1233

This should provide you what you need, and be flexible across all currencies:

$value = '$4265';

if (!is_numeric($value[0])) {
    $value = substr($value, 1) . $value[0];    
}

Upvotes: 0

Svetoslav
Svetoslav

Reputation: 4686

Fastest way in PHP is to use str_replace :)

$cash = '€1,00';
$cash = str_replace('€','',$cash) . '€';
echo $cash;

But a better option is to change your DB field type to some numeric type and just to add the ' €' sign where you want it..

  • You may do this replace inside your DB SELECT statement but I think that its better to do that inside your PHP..

Upvotes: 1

Related Questions