stillat / numeral.php
adamwdraper/Numeral-js 的 PHP 版本
Requires
- php: >=5.6.4
Requires (Dev)
- phpunit/phpunit: ~5.4
README
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
中找到