riskihajar/terbilang 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

riskihajar/terbilang

Composer 安装命令:

composer require riskihajar/terbilang

包简介

Number to words conversion support multi language.

README 文档

README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

Number to words conversion support multi language.

Warning

Before you install this package, please check Laravel Numbers Helper, since laravel officially support numbers helper, maybe this package will deprecated soon.

Supported Language

  • id | Bahasa Indonesia
  • en | English
  • pt | Portuguese
  • soon

Feature

Version Compatibility

Laravel Terbilang PHP
4.x 1.0.4
5.x - 7.x 1.2.x
8.x - 9.x 2.0.x ^7.4 | ^8.0
10.x - 13.x 2.1.x ^8.1

Installation

You can install the package via composer:

composer require riskihajar/terbilang:^2.1

Usage

Service Provider & Facade

This package supports Laravel auto-discovery, so the service provider and facade are registered automatically. No manual setup needed.

If you prefer to register manually (e.g. in config/app.php):

// In the $providers array
Riskihajar\Terbilang\TerbilangServiceProvider::class,

// In the $aliases array
'Terbilang' => Riskihajar\Terbilang\Facades\Terbilang::class,

Publish Configuration (Optional)

If you want customize configuration, you can run following command to publish config file

php artisan vendor:publish --provider="Riskihajar\Terbilang\TerbilangServiceProvider"

This is the contents of the published config file:

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,
        ],
    ],
];

Examples

Number To Words

Terbilang::make($number, $suffix, $prefix)

if you set locale to en

Config::set('terbilang.locale', 'en');

Terbilang::make(1000000); // one million

if you set locale to id

Config::set('terbilang.locale', 'id');

Terbilang::make(1000000); // satu juta
Prefix & Suffix

if you set locale to id

Terbilang::make(123456, ' rupiah', 'senilai ');
// senilai seratus dua puluh tiga ribu, empat ratus lima puluh enam rupiah

if you set locale to en

Terbilang::make(654321, ' dollars');
// six hundred and fifty-four thousand, three hundred and twenty-one dollars

Number to Roman

Terbilang::roman($number, $lowercase=false)

Terbilang::roman(1234); // MCCXXXIV

Number Large Conversion

Terbilang::short($number, $format)

Available short hand : kilo, million, billion, trillion

Default value : million

if you set locale to en

Terbilang::short(1000000); // 1M

if you set locale to id

Terbilang::short(1000000); // 1jt

Datetime

Date 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
Time 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
Date Time 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
Using Carbon

if using carbon, you can ignore $format

$dt = Carbon\Carbon::now('Asia/Makassar');

$date = Terbilang::date($dt);
$time = Terbilang::time($dt);
$datetime = Terbilang::datetime($dt);

Distance Date

You can diff two dates or just one date and automaticly with current date use method Terbilang::distance($start, $end=null, $format=null)

Config for distance format
'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,
     ]
 ],
Example Distance
$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

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.

riskihajar/terbilang 适用场景与选型建议

riskihajar/terbilang 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 176.6k 次下载、GitHub Stars 达 135, 最近一次更新时间为 2015 年 03 月 30 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「laravel」 「terbilang」 「number to words」 「date to words」 「number to roman」 「riskihajar」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 riskihajar/terbilang 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 riskihajar/terbilang 我们能提供哪些服务?
定制开发 / 二次开发

基于 riskihajar/terbilang 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 176.6k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 135
  • 点击次数: 22
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 135
  • Watchers: 5
  • Forks: 44
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2015-03-30