【Laravel】【日付】【フォーマット】Carbonで先頭を0埋めせずにm月d日表示してみる

こんにちは、最近「アイスの実」を「果実玉」と言って同期に突っ込まれたケンティです!

バックエンド
エンジニア

ケンティ

なんとなく意味はわかるしほぼ正解やろってマジメに思ってます。。。

バックエンド
エンジニア

ケンティ

 

今回は、Laravelで日付操作したいときによく使うクラスCarbonについて書いていきます。

日付を表示するときに、Carbonインスタンスに対してformat()で表示形式を指定することができたりと便利ですよね。

以前、月日が1桁で0埋めしないm月d日表示をしたかったことがあったのですが、

やり方を検索しても中々ヒットしなかったので、自分で書いて残しておこうと思います!

 

環境

・PHP 7.3.28

・Laravel Framework 6.20.7

・config/app.php に下記を記述し、タイムゾーンを日本時間に設定しておく

'timezone' => 'Asia/Tokyo',

 

やり方

 

とりあえずCarbon使いたいファイルの頭で、Carbonクラスをuseしよう。

use Carbon\Carbon;

 

テキトーにCarbonインスタンスを取得する。

月日が1桁のテストデータが欲しいので、指定のデータにparseしちゃう。

$dt = Carbon::today()->parse('2021-01-01'); // 2021-01-01を持つデータを取得

 

さっき取得したインスタンスにformatで形式を指定してやる。

$dt->format('n月j日');

// 出力結果
"1月1日"

 

ちなみに、

formatにmとdを使うと0埋めされてしまうので注意。(今まで何も考えずにこれ使ってた

YYYY-mm-dd表示とかならこれ使いましょう。

$dt->format('m月d日');
$dt->format('Y-m-d');

// 出力結果
"01月01日"
"2021-01-01"

 

今回のポイント

 

項目 フォーマット 説明 出力
m 0埋めする 01
n 0埋めしない 1
d 0埋めする 01
j 0埋めしない 1

 

さいごに

 

Carbonは日付に1週間足したり、ある日付とのdiffを取得したりなど

便利な書き方が他にもあるので、ぜひいろいろ試してみてください!

 

少しでもロジカルスタジオに興味が湧いた方はこちらまで〜!