Twigで日付や数値を自由にフォーマット!初心者向けSymfonyテンプレート講座
生徒
「Twigで日付や金額を表示するとき、もっと見やすく整える方法ってありますか?」
先生
「もちろんです!Twigではdateフィルターやnumber_formatフィルターを使って、日付や数値を自由にフォーマットできますよ。」
生徒
「フィルターって何ですか?どうやって使うんですか?」
先生
「フィルターは、表示したいデータを見やすく変換する魔法のようなものです。では、実際に日付と数値のフォーマット方法を見てみましょう!」
1. Twigで日付をフォーマットする基本
Symfonyでは、Twigを使って日付や日時を簡単にフォーマット(書式整形)できます。たとえば、「2025-09-12」という日付を「2025年9月12日」のように表示したいときに使います。
そのときに使うのが、dateフィルターです。フィルターとは、変数の後ろにパイプ(|)を付けて変換するTwigの構文です。
2. 日付を「年月日」形式で表示する例
たとえば、post.publishedAtという日付を「2025年09月12日」と表示したい場合は、次のように書きます。
{{ post.publishedAt|date('Y年m月d日') }}
ここでのYは「西暦4桁」、mは「月(2桁)」、dは「日(2桁)」を意味します。
実行結果は以下のようになります。
2025年09月12日
3. 時刻も一緒に表示するには?
日付だけでなく、時間も一緒に表示したい場合は、次のようにします。
{{ post.publishedAt|date('Y年m月d日 H:i') }}
Hは「時(24時間表記)」、iは「分(2桁)」です。
2025年09月12日 14:30
これで投稿された日時を正確に、かつ日本語らしく表示できます。
4. Twigで数値をカンマ区切りに整える方法
続いて、数値のフォーマットです。Twigではnumber_formatというフィルターを使うと、3桁ごとのカンマや小数点以下の桁数を指定できます。
たとえば、商品の金額がprice = 1000000だったとします。このままだと見づらいですが、次のように表示すると読みやすくなります。
{{ price|number_format }}
1,000,000
5. 小数点以下を含めて整える場合
小数を扱うときは、number_formatに引数を追加できます。
書き方は次のようになります。
{{ value|number_format(2, '.', ',') }}
これは、「小数点2桁」「小数点は.」「千の区切りは,」という指定です。
12,345.68
日本語表記で円マークを付けるなら、次のように書くと自然です。
{{ price|number_format(0, '.', ',') }} 円
100,000 円
6. 数値をパーセントで表示する方法
割合などを表示したいとき、Twigでパーセント表記を加える方法もあります。たとえば、rate = 0.256 であれば、次のように表示できます。
{{ (rate * 100)|number_format(1) }}%
25.6%
変数を100倍して、1桁の小数でフォーマットしたあと、%を付けています。
7. Twigで表示を美しく整えるコツ
表示される日付や数値が見やすいと、Webアプリ全体の印象も大きく変わります。たとえば以下のような工夫ができます。
- 日付には日本語の「年・月・日」を付ける
- 金額は必ずカンマで区切り、円マークをつける
- 割合は小数点を丸めて、%記号を表示
SymfonyのTwigテンプレートは、こうした調整が非常に簡単にできるのが魅力です。