seiler/eloquent-date

此包已废弃,不再维护。未建议替代包。

一个特性,用于帮助您在不同的语言中处理 Eloquent 模型的日期

5.6.0 2018-05-13 11:07 UTC

This package is auto-updated.

Last update: 2022-04-19 15:56:30 UTC


README

Latest Version Software License

此特性用 Jenssegers\Date 替换了 Laravel Eloquent 模型中的 Carbon。

Jenssegers\Date 扩展了 Carbon,支持多语言。如 formatdiffForHumansparsecreateFromFormat 和新的 timespan 方法,现在将根据您的区域设置进行翻译。

此包符合 PSR-1PSR-2PSR-4 标准。如果您注意到符合标准的疏忽,请通过拉取请求发送补丁。

Laravel 兼容性

Laravel Eloquent-Date
5.6 5.6
5.5 5.5
5.4 5.4
5.3 5.3
5.2 5.2

安装

使用 composer 安装

$ composer require seiler/eloquent-date

如果您想在应用程序的其他部分使用 Jenssegers\Date,此包中包含一个服务提供者,用于与 Laravel 框架集成。此提供者将获取应用程序的区域设置并用于翻译。要注册服务提供者,请将以下内容添加到 config/app.php 中的 providers 数组

'providers' => [
    ...
    /*
     * Application Service Providers...
     */
    Jenssegers\Date\DateServiceProvider::class,
    ...
];

您也可以将其添加为 Facade 到 config/app.php

'aliases' => [
    ...
    'Date' => Jenssegers\Date\Date::class,
    ...
];

语言

日期包包含以下语言的文件

  • 阿尔巴尼亚语
  • 阿拉伯语
  • 阿塞拜疆语
  • 孟加拉语
  • 巴斯克语
  • 巴西葡萄牙语
  • 保加利亚语
  • 加泰罗尼亚语
  • 克罗地亚语
  • 中文简体
  • 中文繁体
  • 捷克语
  • 丹麦语
  • 荷兰语
  • 英语
  • 世界语
  • 爱沙尼亚语
  • 芬兰语
  • 法语
  • 加利西亚语
  • 格鲁吉亚语
  • 德语
  • 希腊语
  • 希伯来语
  • 印地语
  • 匈牙利语
  • 冰岛语
  • 印度尼西亚语
  • 意大利语
  • 日语
  • 哈萨克语
  • 韩语
  • 拉脱维亚语
  • 立陶宛语
  • 马其顿语
  • 马来语
  • 挪威语
  • 尼泊尔语 (नेपाली)
  • 波兰语
  • 葡萄牙语
  • 波斯语 (Farsi)
  • 罗马尼亚语
  • 俄语
  • 泰语
  • 塞尔维亚语 (latin)
  • 塞尔维亚语 (cyrillic)
  • 斯洛伐克语
  • 斯洛文尼亚语
  • 西班牙语
  • 瑞典语
  • 土耳其语
  • 土库曼语
  • 乌克兰语
  • 乌兹别克语
  • 越南语
  • 威尔士语

使用方法

在您的 Eloquent 模型中添加 EloquentDate 特性

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    use \Seiler\EloquentDate\EloquentDate;

    /**
     * The attributes that should be mutated to dates.
     *
     * @var array
     */
    protected $dates = [
        'created_at',
        'updated_at',
        'published_at',
    ];
}

现在,任何在 $dates 中声明的属性将转换为 Jenssegers\Date 实例,而不是 Carbon

\Jenssegers\Date\Date::setLocale('fr');

$post = Post::find(1);

echo $post->published_at->format('l j F Y H:i:s'); // samedi 19 mars 2016 21:58:16

echo $post->published_at->ago(); // il y a 1 jour

要了解您可以使用 Jenssegers\Date 做的所有事情,请参阅其自身的 文档

贡献

有关详细信息,请参阅 CONTRIBUTING

安全

如果您发现任何安全相关的问题,请通过电子邮件 frederic@seiler.io 报告,而不是使用问题跟踪器。

致谢

许可

MIT 许可证 (MIT)。请参阅 许可文件 获取更多信息。