wamadev/radon

此包已被放弃,不再维护。作者建议使用 alitnk/radon 包。

:package_description

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

This package is auto-updated.

Last update: 2021-10-16 04:57:05 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 实例上使用大多数 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以获取详细信息及待办事项列表。

安全

如果您发现任何安全相关的问题,请通过电子邮件联系作者,而不是使用问题跟踪器。

致谢

许可证

许可证。请参阅许可证文件以获取更多信息。