格式化谷歌商家中心的货币

时间:2016-11-29 14:28:37

标签: php

要使用经过批准的Google商家,我需要以这种格式向他们发送价格:

  • 2,00欧元必须写成2.00 ou 2.
  • 100 000,00 EUR必须写成100000或100000.00,而不是100,000.00,10000或+100,000。
  • 负数值,如-20,14欧元,必须写为-20.14。
我在我的数据库中得到的内容实际上写得像100.000,00€

所以要更换它,我已经使用了:

  $total_price = substr(str_replace(",", ".", str_replace(".", "", $order->info['total'])),0, -6);

在我看来这是非常糟糕的。有什么想法吗?

2 个答案:

答案 0 :(得分:0)

您可以使用NumberFormatter::parseCurrency使用当前格式化程序将字符串解析为double和money。

答案 1 :(得分:0)

正则表达式会帮助你保持整洁,但你仍然需要删除你在那里躺着的点,然后用点替换逗号。一旦你有了,你可以使用

$str = preg_replace('/[^0-9.]+/', '', $str);

取消您保存的任何货币标签。请注意将来您:在为多货币交易开发软件时,您应该将值与货币分开。通过这种方式,您可以在数据库中保留一个十进制值,并将货币类型保留在另一个中,而不是一起打扰。

玩得开心!如果您还有其他需要,请告诉我