在 .blade 模板中使用 Carbon 本地化日期

Posted

技术标签:

【中文标题】在 .blade 模板中使用 Carbon 本地化日期【英文标题】:Localize Date using Carbon in .blade template 【发布时间】:2018-08-18 17:29:46 【问题描述】:

我在.blade 模板中使用 Carbon 格式化了日期,如下所示:

 Carbon\Carbon::parse($event['date_from'])->toFormattedDateString() 

它会输出:

Mar 20, 2018

那么,如何将日期本地化为例如俄语格式:

【问题讨论】:

你可以使用 Carbon::setLocale('ru');欲了解更多信息,请访问:carbon.nesbot.com/docs ***.com/a/47972040/1227923 @AlexeyMezenin 是.blade 模板的示例吗?不适用于控制器... @КамиловТимур 您可以在应用程序的任何位置执行此操作,但最好在中间件或控制器中设置区域设置,然后在刀片模板中使用 toFormattedDateString() @AlexeyMezenin 你能告诉我怎么做吗? Cz 我尝试将这些行添加到 Controller,但它似乎不起作用。 【参考方案1】:

你可以使用Carbon::setLocale('ru'); & formatLocalized('%d %M');

欲了解更多信息,请访问:Carbon localization

【讨论】:

我需要在.blade 中本地化日期。有可能吗? 在刀片中编写逻辑不是一个好的编码,所以我建议您在控制器中编写本地化逻辑,然后将其传递给刀片文件【参考方案2】:

对于 Laravel 刀片模板,我在我的模型上设置了一个新功能:

public function localizedDiffForHumans() 
    Carbon::setLocale(App::getLocale());
    return $this->created_at->diffForHumans();

然后只需替换模板中的调用:

$message->localizedDiffForHumans()

【讨论】:

以上是关于在 .blade 模板中使用 Carbon 本地化日期的主要内容,如果未能解决你的问题,请参考以下文章

text Carbon Laravel Blade

如何将 Laravel Blade 中的第一个字母大写

如何在 Blade 模板中全局使用变量

Blade:在多个子视图中扩展模板

PHP笔记-laravel中Blade模板引擎的使用

如何在 laravel 4 的 Blade.php 模板中使用静态函数?