alitnk/radon

:package_description

v1.0.1 2021-07-11 10:42 UTC

This package is auto-updated.

Last update: 2024-09-16 11:34:33 UTC


README

Total Downloads Version License

类似于 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 了解详细信息和一个待办事项列表。

安全

如果您发现任何安全问题,请通过作者电子邮件而不是使用问题跟踪器来报告。

致谢

许可证

许可证。有关更多信息,请参阅 许可证文件