laravel 日付 Carbon で曜日を日本語で表示

// 「2019年01月01日(Tue)」になってしまう$formatted_date = $carbon_date->format('Y年m月d日(D)')

// 日本語ロケールをセット
setlocale(LC_ALL, 'ja_JP.UTF-8');
// これで「2019/01/01(火)」になります
$dayOfWeek =  $carbon_date->formatLocalized('%Y年%m月%d日(%a)');

↑でもだめなら
ubuntuなら
OSの日本語ロケール設定をしてみる

sudo apt-get install language-pack-ja
sudo update-locale LANG=ja_JP.UTF-8
↑の2行を実行して
一度再起動してみる



自分で頑張る(曜日の漢字を配列で定義)
$weekday = ['日', '月', '火', '水', '木', '金', '土'];
// これでも「2019/01/01(火)」になります
$formatted_date = $formatted_date.'('.$weekday[$carbon_date->dayOfWeek].')';

Laravel5.8以降はOSに関係せずに日本語変換できるメソッドがあるらしい

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

Carbonv2(基本的にLaravel5.8以降)を利用されているのであればformatLocalizedではなくisoFormatを使ってください。

Carbonv1で実装されたformatLocalizedはOSの言語パッケージが必要ですが、Carbonv2で実装されたisoFormatは内部的な変換を行うのでそれが不要になります。

またisoFormatはmomentjsと互換性があり、Javascriptと同じフォーマット文字列を使用できるためCarbonも推奨しています。
https://carbon.nesbot.com/docs/

もしCarbonv1をご利用であれば言語パッケージ(Ubuntuだとlanguage-pack-ja)がインストールされていないだけだと思うので、OSに合わせてそれをインストールしてみてください。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク