一个用于在PHP中正确处理货币值的小型包。

v0.1.0 2021-08-12 14:43 UTC

This package is auto-updated.

Last update: 2024-09-26 12:37:20 UTC


README

Latest Version on Packagist

你是否遇到过从各种格式的表单中检索货币值的问题,并且在处理这些值或存储到数据库时遇到了困难?

这正是这个小型库解决的问题。而且操作非常简单

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)。有关更多信息,请参阅 许可证文件