uiuifree.com

- サイト制作のノウハウと最適化を目指して-

2020.1.15Carbonで日本語の曜日を表示する方法

Carbonで日本語の曜日を表示する方法

TwitterでCarbonの曜日を日本語で表示したいと話題になっていました、普段の開発で曜日を出すことも少ないので勉強がてらまとめたいと思います。

  1. この記事の目次
    1. 導入構成
    2. Carbonで日付変換の基本的な使い方
    3. 日本語の曜日を付けたい
      1. 日本語にローカライズしてフォーマット
      2. 日本語の曜日配列を作って力技で出す

導入構成

  • PHP 7.4.1
  • Laravel 5.8
  • Carbon v2

Carbonで日付変換の基本的な使い方

Carbonは日付を扱うのが非常に簡単になるライブラリです。日付フォーマットを変換するサンプルをみてみましょう。

use Caron\Carbon
// 現在の日付を出力
Carbon::now()->toDateTimeString(); // 2020-01-15 01:23:48

// 2020/01/15にフォーマット変換
Carbon::now()->format(‘Y/m/d’);

// 01:23:48にフォーマット変換
Carbon::now()->format(‘H:i:s’);

別の記事でも紹介したようにCarbonを使うと月末月初など様々な日付やフォーマットが簡単に出すことができるのは非常にメリットですよね。

日本語の曜日を付けたい

本題にはいりましょう、Carbonで日本語曜日を出力したい!といった要望ってちょいちょいあるかと思います。そんなときに使えるコーディング方法を紹介していきます。

デフォルトのCarbonでも日付フォーマットを使えば曜日が出るのですが、これだと英語出力になってしまいます。

Carbon::now()->formatLocalized('%Y年%m月%d日(%a)'); //  2020年01月15日(Wed)

例1) 日本語にローカライズしてフォーマット

Carbon::setLocale('ja');
Carbon::now()->isoFormat('YYYY年MM月DD日(ddd)');;

Laravelを使用している場合、config/app.phpの初期設定で'locale' => 'ja',を設定してあげるとsetLocaleを設定しなくても日本語利用ができます。

例2) 日本語の曜日配列を作って力技で出す。

昔ながらのやり方です、配列を作って曜日番号と一致させて出力させる方法

$weekday = ['日', '月', '火', '水', '木', '金', '土'];
$weekday[Carbon::now()->dayOfWeek]; // 水

システムの曜日設定でつい間違えてしまうのが日曜の0始まりということです。 ハマって悩んでるエンジニアよく見かけるので覚えておきましょう

添字 曜日
0 日曜日
1 月曜日
2 火曜日
3 水曜日
4 木曜日
5 金曜日
6 土曜日

この記事でCarbonの日本語曜日の設定ができるようになれば幸いです。

最後まで読んでいただきありがとうございました。

PROFILE

このサイトを運営してるuiuifreeです。
渋谷のベンチャー企業で2年ほど新規事業を担当した後にフリーランスエンジニアにキャリア転換。
求人サイトの開発が多くエンジニア/看護師/保育士などの分野でサイトを運営しています。

アウトプット中の技術

リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice)