Laravel、LumenでCarbonのデフォルト言語を日本語にする



PHPで日付を扱うライブラリ、Carbonですが、
LaravelとLumenにも標準で搭載されています。

Laravel, Lumen上でCarbonを使う際、Carbonの言語が英語に設定されており、
タイムディフ等を使う時は下記のようなフォーマットになり、
日本語のサイトでは使い勝手が悪くなってしまいます。

use \Carbon\Carbon;

// 現在時刻から3時間追加し、現在時刻との比較
echo Carbon::now()->addHours(3)->diffForHumans();

// *output
// 3 hours from now

今回はLaravel、LumenでCarbonの言語フォーマットを日本語にセットする方法を紹介します。

( フレームワークのバージョンは共に5.1です )

 

Laravelのケース

設定自体はとても簡単で、
app/ProvidersフォルダのAppServiceProvider.phpのbootファンクション内に、
1行のコードを追加するだけです。

// app/Providers/AppServiceProvider.php

public function boot()
{
   // Carbonの言語を日本語にセット
   \Carbon\Carbon::setLocale('ja');
}

 

Lumenのケース

Lumenの場合もLaravelと同様ですが、
Lumenの場合はデフォルトではServiceProviderが有効にされていません。

今回は bootstrap/app.php内に記述します。

// bootstrap/app.php
\Carbon\Carbon::setLocale('ja');

 

動作確認

// app/Http/routes.php

Route::get('/', function () {

	echo Carbon\Carbon::now()->addHours(3)->diffForHumans();

});

上記のコードで” 今から 3 時間 ”と表示されていれば完了です。

実際にプロジェクトで使う場合はこの様になると思います。

{{-- sample.blade --}}
<div> {{ $article->created_at->diffForHumans() }} </div>


ブログなどで、更新日など発行日と現在時刻を比較する様なケース使えるので、
機会があれば使って下さい。

 

 

この記事のカテゴリ
プログラミング

この記事に付けられているタグ



その他の運営サービス

最新の記事