intelogie/numeral.php

adamwdraper/Numeral-js 的 PHP 版本

1.0.1 2016-04-13 17:59 UTC

This package is auto-updated.

Last update: 2024-08-29 04:05:33 UTC


README

Build Status Latest Stable Version Total Downloads Latest Unstable Version License

Numeral.php 是一个用于 PHP 的数字格式化库。它最初是从 numerals-js(一个用于 JavaScript 的数字格式化库)移植过来的。这就是 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');

入门

使用 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 这样的格式来指定所需的精度(对于只有 3 个数字)。在这种情况下,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中找到。