riskihajar / terbilang
支持多语言将数字转换为文字。
2.0.8
2024-03-31 03:08 UTC
Requires
- php: ^7.4|^8.0|^8.1|^8.2
- illuminate/contracts: ^8.0|^9.0|^10.0|^11.0
- spatie/laravel-package-tools: ^1.0
Requires (Dev)
- larastan/larastan: ^1.0|^2.0
- laravel/pint: ^1.0
- nunomaduro/collision: ^5.0|^6.0|^7.0|^8.0
- orchestra/testbench: ^6.0|^7.0|^8.0|^9.0
- pestphp/pest: ^1.21|^2.0
- pestphp/pest-plugin-laravel: ^1.1|^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.0|^10.0|^11.0
README
支持多语言将数字转换为文字。
警告
在安装此包之前,请检查Laravel Numbers Helper,因为 Laravel 官方支持数字助手,这个包可能很快就会被弃用。
支持的语言
id
| 印尼语en
| 英语pt
| 葡萄牙语- 即将推出
功能
版本兼容性
安装
您可以通过 composer 安装此包。
composer require riskihajar/terbilang:^2.0
用法
添加提供者与别名
在 $providers
数组中添加此包的服务提供者。
Riskihajar\Terbilang\TerbilangServiceProvider::class,
将此包的外观添加到 $aliases
数组中。
'Terbilang' => Riskihajar\Terbilang\Facades\Terbilang::class,
发布配置(可选)
如果您想自定义配置,可以运行以下命令来发布配置文件
php artisan vendor:publish --provider="Riskihajar\Terbilang\TerbilangServiceProvider"
这是发布配置文件的内容
return [ 'output' => [ 'date' => '{DAY} {MONTH} {YEAR}', 'time' => '{HOUR} {SEPARATOR} {MINUTE} {MINUTE_LABEL} {SECOND} {SECOND_LABEL}', ], 'locale' => 'en', 'distance' => [ 'type' => \Riskihajar\Terbilang\Enums\DistanceDate::Day, 'template' => '{YEAR} {MONTH} {DAY} {HOUR} {MINUTE} {SECOND}', 'hide_zero_value' => true, 'separator' => ' ', 'terbilang' => false, 'show' => [ 'year' => true, 'month' => true, 'day' => true, 'hour' => true, 'minute' => true, 'second' => true, ], ], ];
示例
数字转文字
Terbilang::make($number, $suffix, $prefix)
如果设置为 en
Config::set('terbilang.locale', 'en'); Terbilang::make(1000000); // one million
如果设置为 id
Config::set('terbilang.locale', 'id'); Terbilang::make(1000000); // satu juta
前缀 & 后缀
如果设置为 id
Terbilang::make(123456, ' rupiah', 'senilai '); // senilai seratus dua puluh tiga ribu, empat ratus lima puluh enam rupiah
如果设置为 en
Terbilang::make(654321, ' dollars'); // six hundred and fifty-four thousand, three hundred and twenty-one dollars
数字转罗马数字
Terbilang::roman($number, $lowercase=false)
Terbilang::roman(1234); // MCCXXXIV
数字大转换
Terbilang::short($number, $format)
可用的缩写: kilo, million, billion, trillion
默认值: million
如果设置为 en
Terbilang::short(1000000); // 1M
如果设置为 id
Terbilang::short(1000000); // 1jt
日期时间
日期 Terbilang::date($date, $format='Y-m-d');
$date = date('Y-m-d'); // 2015-03-31 Terbilang::date($date); // Result : tiga puluh satu maret dua ribu lima belas
时间 Terbilang::time($date, $format='h:i:s');
$date = date('h:i:s'); //10:56:30 Terbilang::time($date); // Result : sepuluh lewat lima puluh enam menit tiga puluh tiga detik
日期时间 Terbilang::datetime($date, $format='Y-m-d h:i:s');
$date = date('Y-m-d h:i:s'); // 2015-03-31 10:58:27 Terbilang::datetime($date); // Result : tiga puluh satu maret dua ribu lima belas pukul sepuluh lewat lima puluh delapan menit dua puluh tujuh detik
使用 Carbon
如果使用 Carbon,可以忽略 $format
$dt = Carbon\Carbon::now('Asia/Makassar'); $date = Terbilang::date($dt); $time = Terbilang::time($dt); $datetime = Terbilang::datetime($dt);
日期距离
您可以使用方法 Terbilang::distance($start, $end=null, $format=null)
来比较两个日期或只比较一个日期与当前日期。
距离格式配置
'distance' => [ 'type' => 'FULL', 'format' => '{YEAR} {MONTH} {DAY} {HOUR} {MINUTE} {SECOND}', 'hide_zero_value' => true, 'separator' => ' ', 'terbilang' => false, 'show' => [ 'year' => true, 'month' => true, 'day' => true, 'hour' => true, 'minute' => true, 'second' => true, ] ],
示例距离
$date1 = date('Y-m-d', strtotime('2017-05-01')); // dateformat must Y-m-d H:i:s $date2 = date('Y-m-d', strtotime('2017-06-15 09:30:15')); // this method will diff $date1 with current datetime value for example current datetime : 2017-09-08 15:17:54 Terbilang::period($date1); // Result : 4 months 8 days 15 hours 17 minutes 54 seconds Terbilang::period($date1, $date2); // Result : 1 months 15 days 9 hours 30 minutes 15 seconds // if you set locale to id Terbilang::period($date1, $date2); // Result : 1 bulan 15 hari 9 jam 30 menit 15 detik // if you set config period.terbilang to true Terbilang::period($date1, $date2); // Result : satu bulan lima belas hari sembilan jam tiga puluh menit lima belas detik // if you set config period.type to DAY Terbilang::period($date1, $date2); // Result : 45 hari
测试
composer test
变更日志
请参阅变更日志以获取有关最近更改的更多信息。
贡献
请参阅贡献指南以获取详细信息。
安全漏洞
请参阅我们的安全策略了解如何报告安全漏洞。
致谢
许可证
MIT 许可证(MIT)。请参阅许可证文件以获取更多信息。