Your browser (Internet Explorer 6) is out of date. It has known security flaws and may not display all features of this and other websites. Learn how to update your browser.
X
Post

Smartyのdate_formatの挙動について

Smarty回りをいじっていたら発見した仕様。
ちょっとした小ネタです。



Smartyだと日付の表示フォーマットを指定する時、
date_format関数により指定します。
php標準関数ではdate関数が同じような役割を果たします。


今回、時刻の指定が誤った時の挙動が両者で違う事に気付きました。
php標準のdate()関数は第二引数のtimestampが不適切な値だと
timestampを0として処理を続けますが、
Smartyのdate_format関数は時刻をtimestamp変換するのに失敗すると
現在時刻を取得して処理を続けるようです。

// phpのdate関数だと1970-01-01 09:00:00となる。
echo date('Y-m-d H:i:s', 'timestampでない値');

<{* Smartyだと現在時刻が出力される *}>
<{'時刻フォーマットでない値'|date_format:"%Y-%m-%d %H:%i:%s"}>


思いがけず仕様の違いを見つけたので、備忘録としてメモ。

しかしSmartyの方のとりあえず現在時刻持ってくるっていうのは謎だなぁ……
どういう意図があってこの仕様にしたんだろう。

TrackBack URL :

Leave a comment  

name

email

website

Submit comment