wamadev / radon
Requires
- hekmatinasser/verta: ^1.12
- illuminate/support: ~7|~8
Requires (Dev)
- orchestra/testbench: ~5|~6
- phpunit/phpunit: ~9.0
README
一个类似于 Carbon 的库,但用于伊朗(贾拉利)日历。
安装
通过 Composer
$ composer require alitnk/radon
使用
创建新实例
就像你使用 now() 并得到一个 Carbon 实例一样,你可以使用 jnow() 并得到一个代表当前时间的 Radon 实例。
要基于给定的日期时间创建一个新实例,你可以使用 radon($datetimeString),例如:$r = radon('1401-12-28 06:15'),以获得该日期时间的实例。
转换
要将 Carbon 实例转换为 Radon 实例,执行以下操作
$carbonInstance->toJalali(); // returns Radon instance and converts the date from gregorian to jalali
要执行相反的操作(Radon 到 Carbon),执行以下操作
$radonInstance->toGregorian(); // returns Carbon instance and converts the date from jalali to gregorian
方法
你可以在 Radon 实例上使用大多数 Carbon 的方法。例如:`$radonInstance->diffForHumans()`,`$radonInstance->addDay(10)`,`$radonInstance->setDay(1)`。
Eloquent / 查询
Radon 为贾拉利日期引入了新的查询功能。可用方法有
whereBetweenJalali
请注意,此方法也适用于 Collection 对象。
示例
Product::whereBetweenJalali('created_at', [radon('1398-10-12'), radon('1398-11-12')])->get();
orWhereBetweenJalali
此方法类似于 orWhereBetween,但用于贾拉利日期。
whereDateJalali
Comment::whereDateJalali('created_at', radon('1400-01-01'))->get(); // Gets all the comments for first day of 1400
whereDayJalali
比较天数
Comment::whereDayJalali('created_at', 31); // Gets all comments for 31th
whereMonthJalali
比较月份
Comment::whereMonthJalali('created_at', 1); // Gets all of Farvardin's comments
whereYearJalali
比较年份
Comment::whereYearJalali('created_at', 1400); // Gets all of 1400's comments
类型转换
你可以使用 Radon 类型转换来简化转换过程。要使用类型转换,将类型转换添加到相应的模型字段中
use Wama\Radon\Casts\JalaliDatetime; class Product extends Model { protected $casts = [ 'sales_ends_at' => JalaliDatetime::class, 'updated_at' => JalaliDatetime::class, 'created_at' => JalaliDatetime::class, ]; }
并且每次获取字段时都会得到一个 Radon 实例。`$product->sales_ends_at // 返回一个 Radon 实例`
你还可以更新模型,无需担心日期时间转换
$product->update([ 'sales_ends_at' => radon('1401-01-14 23:00'), // Sales will end at Farvardin 14th ]);
或
$product->sales_ends_at->addMonth(); $product->save();
扩展
Radon 尝试支持大多数的 Carbon 方法,但请注意,一些 Carbon 方法目前尚不支持,可能会在下一个版本中添加。此包底层使用 Verta,因此,扩展一些功能可能需要 Verta 的扩展。
变更日志
请参阅变更日志以获取最近更改的更多信息。
测试
$ composer test
贡献
请参阅contributing.md以获取详细信息及待办事项列表。
安全
如果您发现任何安全相关的问题,请通过电子邮件联系作者,而不是使用问题跟踪器。
致谢
许可证
许可证。请参阅许可证文件以获取更多信息。