-2

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

例如 :

  • 在法国,你会写 1000,00 €</p>

  • 在美国,1,000.00 美元

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

编辑 :

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

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

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

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

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

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

4

3 回答 3

3

是的,通过intl 模块

对于货币有一个 NumberFormater 类:

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

于 2014-04-03T08:10:25.923 回答
0

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

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

于 2014-04-03T08:11:11.467 回答
0

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

从文档:

<?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)
于 2014-04-03T08:16:38.207 回答