intelogie / numeral.php
adamwdraper/Numeral-js 的 PHP 版本
Requires
- php: >=5.5.9
Requires (Dev)
- mockery/mockery: ~0.9.2
- phpunit/phpunit: ~4.0
This package is auto-updated.
Last update: 2024-08-29 04:05:33 UTC
README
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
中找到。