[Smarty] 日付を整形する date_format修飾子 で「年月日」等の日本語が表示されない時の対処方法

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

こんにちは、fujinyoです。
テンプレートエンジンはずっとSmartyを使っています。

Webサイトでは、日付や時間を表示する事がよくあります。
その際にできれば、「年月日時分秒」等の日本語を使いたいですよね。

日本語が表示されない事がある

データベースや、他サイトのAPI等から引っ張ってきたデータは

2012/09/01 12:00:00

だったり

2012-09-01 12:00:00

のような形式で格納されており、取得してから整形します。

整形の方法は、いろいろありますがSmartyを使う上ではdate_format修飾子を使います。
しかし、date_format修飾子では日本語がうまく表示されない事があります。

解決方法

その場合の解決方法が、::yossy.blog::で紹介されていました。

Smartyのdate_format修正子でYYYY年M月D日を表示
日本語で記述するとたまぁに正しく表示されないときがあります(環境は忘れた)。
なので、日本語部分を数値文字参照にしてやります。
今回の場合は16進の数値文字参照です。

日本語の部分を数値文字参照という形で入力してやる方法です。
以下、日時整形で使う主な文字を16進の数値文字参照形式でまとめてみました。

: 年

: 月

: 日

: 時

: 分

: 秒

曜日 : 曜日

世紀 : 世紀

西暦 : 西暦

明治 : 明治

大正 : 大正

昭和 : 昭和

平成 : 平成

これぐらいでしょうか。
&を全角にしているので半角にして使用して下さい。

では、また。

[PR] 「結さん」があなたに代わって開発案件の依頼主を探します

  • 「既存のクライアントにギャラアップは言いにくい」
  • 「営業活動する時間がないし、苦手」
  • 「仕事が途切れたらどうしよう」

ITエンジニアのこんな悩みを「結さん」が解決してくれます
結さんへの無料会員登録後は提案メールを待つだけです!

関連記事

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