我在Laravel处理日期本地化。以下是我在blade.php中显示日期的方法。
Publish on {{ $post->published_at->format('F j, Y') }} //Publish on November 20, 2015
我尝试了(https://github.com/jenssegers/date)
use Jenssegers\Date\Date;
Date::setLocale('hr');
echo Date::now()->format('F j, Y'); //Studeni 20, 2015
困扰我的是如何在blade.php中重新格式化$post->publiched_at
以进行本地化
答案 0 :(得分:1)
您可以依赖内置Carbon类的区域设置功能。</ p>
在您的视图中,您可以根据需要设置区域设置
<?php \Carbon\Carbon::setLocale('hr');?>
然后你可以用所需的格式回复你的日期
{{$post->published_at->formatLocalized()}}
您可以直接在Post模型中将published_at定义为Carbon实例
protected $dates = ['published_at'];
答案 1 :(得分:1)
我通过在模型
中添加访问器解决了这个问题use Jenssegers\Date\Date;
class Post extends Model
{
public function getDates()
{
return ['published_at'];
}
public function getCreatedAtAttribute($date)
{
return new Date($date);
}
public function getUpdatedAtAttribute($date)
{
return new Date($date);
}
public function getPublishedAtAttribute($date)
{
return new Date($date);
}
}
并在config / app.php中设置语言环境
'locale' => 'hr',
答案 2 :(得分:0)
看看Carbon。他们提供了许多灵活的方法来解决这个问题。
// Using a String
$dtToronto = Carbon::createFromDate(2012, 1, 1, 'America/Toronto');
$carbon = new Carbon('first day of January 2008', 'America/Vancouver');
// or a DateTime
$nowInLondonTz = Carbon::now(new DateTimeZone('Europe/London'));