Human readable numbers for Laravel. In some cases, you may need to format numbers in a way that is easier to read. Especially when you are dealing with numbers that are very large, for example we want to show page views and we have 100000000
views. So we can show it in the 100M
format.
composer require laravel-ready/readable-numbers
Threshold | Suffix | Result |
---|---|---|
900 | 900 | |
900.000 | k | 0.9 K |
900.000.000 | m | 0.9 M |
900.000.000.000 | b | 9 T |
90.000.000.000.000 | t | 900 T |
make
method takes 3 aguments: make(float $value, int $decimals = 1, $lang = null)
use LaravelReady\ReadableNumbers\Services\ReadableNumbers;
...
$readableNumber = ReadableNumbers::make(123456789); // 123.5 M
$readableNumber = ReadableNumbers::make(-123456789); // -123.5 M
// with more decimals
$readableNumber = ReadableNumbers::make(123456789, 2); // 123.46 M
// with target language (default is english)
$readableNumber = ReadableNumbers::make(123456789, 2, 'tr'); // 123.46 Mn
$readableNumber = ReadableNumbers::make(123456789, 3, 'ja'); // 123.457 億
$readableNumber = ReadableNumbers::make(123456789, 4, 'de'); // 123.4568 Mio.
There is only one directive: @readableNumber()
, again takes three arguments: @readableNumber(float $value, int $decimals = 1, $lang = null)
. If you use a multi-language system, you should remember to directives are cached. So, you should pass decimal count and language.
...
<span>
@readableNumber(123456789, 1, app()->getLocale())
</span>
...
<span class="view-counter">
<i class="icon icon-eye"></i>
Viewed @readableNumber($blogPost->views, 1, app()->getLocale()) times
</span>
Supported languages are listed here and reference are used in unicode.org. If you want to add your own language and send PR.
Don't forget to these shortings are depends on a mathematical view.