alitnk / radon
:package_description
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 实例上使用大多数碳的方法。例如: $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 试图支持大多数碳方法,但请注意,一些碳方法尚不支持 尚未 并可能在下一个版本中添加。此包在底层使用 Verta,因此,扩展一些功能可能需要 Verta 的扩展。
变更日志
请参阅 changelog 了解最近的变化。
测试
$ composer test
贡献
请参阅 contributing.md 了解详细信息和一个待办事项列表。
安全
如果您发现任何安全问题,请通过作者电子邮件而不是使用问题跟踪器来报告。
致谢
许可证
许可证。有关更多信息,请参阅 许可证文件。