ricklukewebdev / money
一个用于在PHP中正确处理货币值的小型包。
v0.1.0
2021-08-12 14:43 UTC
Requires
- php: ^7.1 || ^8.0
Requires (Dev)
- phpunit/phpunit: ^7.5 || ^8.0 || ^9.5
README
你是否遇到过从各种格式的表单中检索货币值的问题,并且在处理这些值或存储到数据库时遇到了困难?
这正是这个小型库解决的问题。而且操作非常简单
use RickLuke\Money\Money; $value = Money::convert("€ 249,49"); // 249.49
此外,还有一些基本的计算方法可供使用,允许对存储的值进行操作。
安装
可以使用Composer安装此项目
composer require ricklukewebdev/money
使用方法
在PHP文件的顶部,只需导入包
use RickLuke\Money\Money;
从现在开始,你可以按照以下方式创建一个新的Money实例
$money = Money::create("€ 29,50");
要返回浮点值,可以使用 toFloat() 方法
echo $money->toFloat(); // 29.5
还有一个可用的 format() 方法(见下文)。
操作
值可以通过几种方式操作。
以下示例中的值基于前面提到的值。
// Adding $money->add(2); // 31.5 // Subtracting $money->subtract("5,5"); // 26 // Multiplying $money->multiply(2.5); // 65 // Dividing $money->divide(3); // 21.666666666667 // Working with percentages $money->addPercentage(21); // 26.216666666667 $money->subtractPercentage("15%"); // 22.797101449275
方法链
上述所有方法都可以像这样链接
$money = Money::create(20) ->add("€ 5,75") ->addPercentage("17.5%") ->toFloat(); // 30.25625
货币
创建新的Money实例时,可以选择提供货币符号作为第二个参数。当使用 format() 方法时可以返回此符号
$money = Money::create(275, "€");
格式化
结果可以作为浮点数输出,或者可以使用 format() 方法进行格式化。
use RickLuke\Money\Money; use RickLuke\Money\CurrencyPosition; $money = Money::create(19.989, "€"); // Return as float echo $money->toFloat(); // 100 // Return formatted echo $money->format(CurrencyPosition::LEFT, 2, ',', '.'); // € 19,99
format() 方法将货币符号的所需位置作为第一个参数。其他参数与PHP的默认 number_format() 方法类似。
// Left echo Money::create(19.989, "€") ->format(CurrencyPosition::LEFT, 2, ',', '.'); // € 19,99 // Right echo Money::create(19.989, "$") ->format(CurrencyPosition::RIGHT, 2, '.', ','); // 19.99 $ // Hide echo Money::create(19.989, "USD") ->format(CurrencyPosition::NONE, 2, '.', ','); // 19.99
如果需要,可以使用 removeSpace() 方法移除货币符号和金额之间的空格
echo Money::create(19.989, "€") ->removeSpace() ->format(CurrencyPosition::LEFT, 2, ',', '.'); // €19,99
变更日志
请查看实际的 CHANGELOG。
许可证
MIT许可证(MIT)。有关更多信息,请参阅 许可证文件。