stillat/numeral.php

adamwdraper/Numeral-js 的 PHP 版本

v2.0.2 2022-08-27 17:28 UTC

This package is auto-updated.

Last update: 2024-08-27 21:45:43 UTC


README

numeral.php

Build Status Latest Stable Version Total Downloads Latest Unstable Version License

Numeral.php 是一个用于 PHP 的数字格式化库。它最初是 JavaScript 数字格式化库 numerals-js 的移植版本。这就是 Numeral.php 命名的由来。Numeral.php 的最新版本基于 numbro,它是 numerals-js 的维护版本。API 与 numbro 非常相似,但也有一些不同之处。大部分文档都是来自 numbro.js 网站,并根据需要进行调整,所以请务必给予他们一些爱。

以下是一个快速示例

// +10,000
$formatter->format(1000.23, '+0,0');

// 233.43k
$formatter->format(233434, '0a.00');

安装

您可以使用 Composer 在项目根目录下运行以下命令来安装此包

composer require stillat/numeral.php

入门

使用 Numeral.php 相对简单。在开始时,您需要做两件事。首先,我们需要创建一个语言管理器实例,然后创建一个 Numeral (这个类负责所有格式化和反格式化操作)实例。语言管理器负责加载格式化器将使用的文化信息。

这可能看起来像这样

<?php

use Stillat\Numeral\Languages\LanguageManager;
use Stillat\Numeral\Numeral;

// Create the language manager instance.
$languageManager = new LanguageManager;

// Create the Numeral instance.
$formatter = new Numeral;

// Now we need to tell our formatter about the language manager.
$formatter->setLanguageManager($languageManager);

此时,我们可以使用我们的 $formatter 并用它来做所有酷炫和有趣的事情。

格式化

数字可以被格式化为货币、百分比、时间,甚至是带有小数点、千位分隔符和缩写的普通数字。

// 1,000
$string = $formatter->format(1000, '0,0');

数字

平均值

Numeral.php 提供了一个简单的机制,可以使用特殊格式化字符 a 将任何数字向上舍入。请注意,分隔符是按语言划分的。

大写变体:您可以通过使用大写特殊格式化字符 A 来提供这个的大写变体。这在 numbro.js 中是不存在的。

此外,当数字向上舍入时,可以通过类似 3a 的格式指定所需的精度(在这种情况下,0 用于“自动”模式)。

货币

Numeral.php 通过 formatCurrency 函数支持文化货币格式化。

// $1000
$formatter->formatCurrency(1000.234);

您可以提供更具体的格式,只要您不使用 $ 字符

// $1000.23
$formatter->formatCurrency(1000.234, '0[.]00');

但如果您愿意,您总是可以手动提供一个格式来覆盖语言默认值

字节

百分比

时间

如果您想要格式化更多的时间,您应该查看 Carbon 库。

反格式化

您可以使用 unformat 函数来反格式化字符串。

// -10000
$number = $formatter->unformat('($10,000.00)');

默认零

您可以在格式化值等于 0 的数字时设置自定义输出

$formatter->setZeroFormat('N/A');

// 'N/A'
$number = $formatter->format('0');

致谢

Numeral.php 基于 numbro,而 numbro 本身又是 Adam Draper 的项目 Numerals.js 的分支(Numeral.php 的命名受到了这个项目的影响)。Numbro 对 numerals 进行了许多改进,因此 Numeral.php 的代码库受到了它的影响(Numbro 格式在 Numeral.php 中应该不需要任何修改就能使用)。

许可证

版权所有 © 2014 Adam Draper

版权所有 © 2015 Företagsplatsen AB

版权所有 © 2016 Johnathon Koster

遵照MIT许可证分发。如需了解更多信息,请参阅LICENSE.txt文件。

Numbro的原始许可证可以在LICENSE-numbro中找到

Numeral.js的原始许可证文件可以在LICENSE-Numeraljs中找到