terdelyi/laravel-localedate

此包已被弃用且不再维护。作者建议使用 carbonnesbot/carbon 包。

Laravel 的简单日期本地化。

v1.0.1 2018-02-15 09:32 UTC

This package is auto-updated.

Last update: 2022-02-01 12:59:00 UTC


README

Build Status

重要!从 Laravel 5.8 开始,框架默认支持 Carbon 2,它为日期本地化提供了更好的解决方案,因此此包已失去其作用且不再受支持。

这是什么?

Laravel 的简单日期本地化。

为什么?

正如你可能所知,Laravel 内置了对翻译的支持。如果你想显示不同语言的文本,这非常好。但日期怎么办呢?

Laravel 使用 Carbon 进行日期处理,但当你更改 config/app.php 中的 locale 设置时,它不会影响日期的文本表示,例如 Carbon 中的 diffForHumansformatLocalized 方法。使用此包,你可以同步你的地区设置与 Carbon 和 PHP 的 setlocale 方法

明白了,接下来该怎么做?

首先,你需要使用 Composer 安装此包

composer require terdelyi/laravel-localedate

或者将其添加到你的 composer.json 文件中

"require": {
    "terdelyi/laravel-localedate": "1.*"
}

在执行 composer update 之后,将 Terdelyi\LocaleDate\LocaleDateServiceProvider::class 添加到 config/app.php 中的 providers 数组。

还有什么需要我了解的吗?

由于不同的系统(MacOs、Windows、Linux)有不同的地区命名方案,日期格式化使用一个 locales.php 配置文件来覆盖它们。你可以轻松地将此配置文件发布到你的应用程序中

php artisan vendor:publish --provider="Terdelyi\LocaleDate\LocaleDateServiceProvider"

现在在 config/app.php 中设置正确的地区值,并检查你是否在 locales.php 中有有效的键引用。如果一切顺利,你将得到本地化日期

Carbon::now()->diffForHumans(Carbon::now()->subYear()) // this gives back '1 year later'

因此

Carbon::createFromDate(2016,6,9)->formatLocalized('%A') // this gives back 'thursday'

在运行时更改地区

如果你想更改运行时的地区设置,可以使用

App::setlocale()

因为该包正在监视由此方法触发的事件,并执行必要的操作。