terdelyi / laravel-localedate
Laravel 的简单日期本地化。
Requires
- php: >=5.6
- illuminate/contracts: 5.*
- illuminate/support: 5.*
- nesbot/carbon: ~1.20
Requires (Dev)
- mockery/mockery: 0.9.*
- phpunit/phpunit: ~5.7
This package is auto-updated.
Last update: 2022-02-01 12:59:00 UTC
README
重要!从 Laravel 5.8 开始,框架默认支持 Carbon 2,它为日期本地化提供了更好的解决方案,因此此包已失去其作用且不再受支持。
这是什么?
Laravel 的简单日期本地化。
为什么?
正如你可能所知,Laravel 内置了对翻译的支持。如果你想显示不同语言的文本,这非常好。但日期怎么办呢?
Laravel 使用 Carbon 进行日期处理,但当你更改 config/app.php
中的 locale
设置时,它不会影响日期的文本表示,例如 Carbon 中的 diffForHumans
或 formatLocalized
方法。使用此包,你可以同步你的地区设置与 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()
因为该包正在监视由此方法触发的事件,并执行必要的操作。