【问题标题】:Writing the good format of a currency in PHP用 PHP 编写良好的货币格式
【发布时间】:2014-05-14 22:02:51
【问题描述】:

当我们写发票时,我们必须尊重货币格式

例如:

  • 在法国,你会写 1000,00 €

  • 在美国,1,000.00 美元

我想知道它是否由某些 PHP 库处理?尤其是左边或右边的钱符号。

编辑:

我从来没有像这样被否决过,我认为我的问题没有问得那么好。很抱歉。

我已经知道 PHP 中不同的格式化函数,并且我知道应该为每个国家和他们的货币格式选择格式化程序选项。你,我没有时间做那个工作。

我的目标是为世界上所有可能的语言环境格式化任何货币值,而无需注册所有这些语言环境。

也许有人写了一个可以完成这项工作的类,但我没有找到它。

顺便说一句,我知道这很难,我可以谈谈欧元的例子。

在许多国家,他们写 EUR xxxxx。在某些国家/地区,它写为 xxxx EUR。

【问题讨论】:

标签: php money-format


【解决方案1】:

是的,intl module

对于货币有一个 NumberFormater 类:

http://www.php.net/manual/en/numberformatter.formatcurrency.php

【讨论】:

  • 我之前没有找到那个库,它处理了很大一部分问题:如何写数字。但它没有说明将钱放在哪里。
  • 不确定您所说的“把钱放在哪里”是什么意思。您创建一个传递用户区域设置的对象,它会格式化货币并在正确的位置添加符号。链接的方法文档页面中有这方面的示例。
【解决方案2】:

http://ru2.php.net/number_format 会帮助你。

您可以简单地使用 number_format() 自行设置。将每种货币的规则保存在 db 中,然后应用于有关其类型的视图。

【讨论】:

  • 我发现了这个功能,但它并不好,因为您没有不同资金的存储库。我不想找到 180 的钱,然后找到如何写它们;p
  • 无论如何,你必须找到 180 块钱。因为你必须知道什么是货币。您也可以使用 gontrollez 所说的功能。但是在应用格式之前,您必须知道什么是货币,然后才能应用格式。是的,格式化 mb 这是一个问题,但我认为您会遇到手动更改它的情况。 :Р
【解决方案3】:

基本的 PHP 函数money_format 可以很好地处理您的输出。 如果您需要更多,请查看Money PHP Library。 IT 非常强大。

来自文档:

<?php
$number = 1234.56;

// let's print the international format for the en_US locale
setlocale(LC_MONETARY, 'en_US');
echo money_format('%i', $number) . "\n";
// USD 1,234.56

// Italian national format with 2 decimals`
setlocale(LC_MONETARY, 'it_IT');
echo money_format('%.2n', $number) . "\n";
// Eu 1.234,56

// Using a negative number
$number = -1234.5672;

// US national format, using () for negative numbers
// and 10 digits for left precision
setlocale(LC_MONETARY, 'en_US');
echo money_format('%(#10n', $number) . "\n";
// ($        1,234.57)

// Similar format as above, adding the use of 2 digits of right
// precision and '*' as a fill character
echo money_format('%=*(#10.2n', $number) . "\n";
// ($********1,234.57)

【讨论】:

  • 它看起来真的很强大,但我已经看到了。要想写得好,就得把全世界的钱都注册好
猜你喜欢
  • 2012-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-24
  • 1970-01-01
  • 2011-06-27
相关资源
最近更新 更多