クマの手も借りたい
馬とテニスとリラックマが好きな IT 系のエンジニアです。
PHP

SmartyでYYYYMMDDの文字列から日付表示をする方法

Smarty の date_format を使うと、YYYYMMDD HH:MM:SS のような日付はきれいにパースしてくれます。

しかし、YYYYMMDD の文字列を日付のフォーマットには変換してくれません。

今回は、Smarty で YYYYMMDD の文字を日付フォーマット変換する方法を紹介します。

日付に一度変換する

対処法としては、strtotime で文字列を日付に変換しておいて、その後に date_format を使います。

これで、YYYYMMDD な日付文字列を YYYY-MM-DD や YYYY年MM月DD日のようなフォーマットに簡単に変換できます。

以下の説明が該当しそうな気がします。

Smarty-2.6.10 より前は、PHP の strtotime() がパース可能な数値文字列 (YYYYMMDD のような形式) は、タイムスタンプではなく日付文字列として解釈されることもあります(strtotime() の実装に依存します)。

Smartyの記述方法

Smarty の定義は以下のようになります。

$birth = "20100819";

[Smarty]
{$birth|escape|strtotime|date_format:"%Y-%m-%d"}
Web API The Good Parts

オライリーの「Web API」に特化した本です。最近の多くの Web サービスは API が活用されていますが、その技術はこれまでの Web サイトとそれほど大きく変わりません。

今後、マイクロサービス化が進む中で知っておいて損はない内容が詰め込まれており、現場のエンジニアやこれから Web 系のエンジニアを目指す人にもオススメの一冊です。

created by Rinker
¥2,376
(2018/09/20 11:58:13時点 Amazon調べ-詳細)

あなたにオススメ