mokhosh / jarbon
A Jalali wrapper for Carbon to use with Laravel.
v0.3.0
2021-05-21 05:29 UTC
Requires
- nesbot/carbon: ^2.0
README
A Jalali wrapper for Carbon to use with Laravel.
The idea is to add Jalali functionality to Carbon instances without introducing breaking changes. Also I'm not in a hurry to exhaust all Carbon methods and features here. Just implementing what I need in my projects for now.
Installation
Via composer
$ composer require mokhosh/jarbon
Usage
You can simply convert any Carbon
instance to Jalali like this:
$user->created_at->jormat($format) // see links below to know more about date formats
If you wanna use the format helper methods you can do this too, but it's optional:
class User extends Model { use JarbonTrait; }
Now you can output the Jalali date like this:
$user->created_at->toJString(); // 12:36:20 چهارشنبه 27 شهریور 1398 $user->created_at->toJDateString(); // 1398-06-27 $user->created_at->toJFormattedDateString(); // 27 شهریور 1398 $user->created_at->toJTimeString(); // 12:36:20 i know! but this will render in persian digits if you set the config $user->created_at->toJDateTimeString(); // 1398-06-27 12:36:20 same as implicit toString in blade but you need to call this explicitly elsewhere $user->created_at->toJDayDateTimeString(); // چهارشنبه 27 شهریور 1398 12:36 ب.ظ
Publish the config file:
php artisan vendor:publish --tag=config
or in case I add more publishable stuff:
php artisan vendor:publish --provider="Mokhosh\Jarbon\JarbonServiceProvider"
Help yourself:
// config/jarbon.php return [ 'default_format' => 'Y-m-d H:i:s', // to render $carbon->jormat() differently 'convert_numbers' => false, // set to true to get dates like چهارشنبه ۲۷ شهریور ۱۳۹۸ ۱۲:۳۶ ب.ظ ];
TODO
- Add jarbon() helper
- Fluent methods to override config on a single instance
- Cache a Jalali date inside the instance and track Carbon modification to regenerate it on the fly
- Integrate with a client side Jalali datepicker for Jalali datetime inputs in forms
- Helpers to play with Jalali and Gregorian dates
- Unit tests?
- what else?