【问题标题】:Change format of money Postgresql更改货币 Postgresql 的格式
【发布时间】:2013-04-09 08:44:03
【问题描述】:

我有一个 Postgre 数据库,其中一个值是钱(类型,ofc)。 当我使用 PHP 进行选择时,该查询的输出格式如下:

示例:1.00 欧元

我正在寻找将这种格式更改为另一种格式的方法:

示例:1,00 欧元。

我可以在查询中进行哪些更改以获得最后一个结果?

谢谢!

【问题讨论】:

  • 您可以通过查看常见问题解答部分来改变您提出堆栈溢出问题的方式!

标签: php format currency


【解决方案1】:

PHP 中最快的方法是使用 str_replace :)

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

但更好的选择是将您的数据库字段类型更改为某种数字类型,然后在您想要的位置添加“€”符号。..

  • 您可以在您的 DB SELECT 语句中执行此替换,但我认为最好在您的 PHP 中执行此操作..

【讨论】:

    【解决方案2】:

    如果它像没有货币的数字一样存储在数据库中,您可以使用函数number_format($x,y,'.','')

    在哪里 $x 是你的号码 y 是小数分隔符后面的数字个数 '。' - 表示小数点分隔符是 . '' - 表示千位之间没有分隔符

    所以你只需以你想要的方式格式化你的号码并添加“欧元”符号。

    如果它的价格有一个叫做货币格式的函数:

    你必须将它与你想要的货币国家的语言环境一起使用。 :

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

    这意味着你使用德国货币。 '%.2n' 表示您的输出来自 $yourvariable 并且有 2 个小数

    对于数字之后或之前的“欧元”符号。这取决于语言环境。我认为斯洛伐克语或西班牙语在数字后有欧元符号。

    试试看。

    【讨论】:

      【解决方案3】:

      这应该可以满足您的需求,并且可以灵活地使用所有货币:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-08-18
        • 2015-10-24
        • 2012-01-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多