経過年数を動的生成(Smarty版)![]()
blogやウェブサイトにSmartyというテンプレートエンジンを使ってる方も多いと思います。あれは便利ですね。
慣れると元には戻れません。
特に変化のあまり必要ない静的なコンテンツや最初に表示する内容が決まっているページは、毎回コンパイルしないでキャッシュした方のファイルを使うこともできるので、とても快適です。特に後者でデータべースから内容を拾って表示するような場合は、手にとるように速くなったのが分かります。
でもいくら静的だったりデフォルト表示でも、ここは変えたいなあと思う場所があります。
blogみたいに執筆日時が明確だと特に気にならないのですが、TIPSとかアーカイブとか、資料のようにして展開しているページの場合、ついうっかり○年前と書くと、年が変わったときに整合がとれなくなってしまいます。
そんなとき、Smartyは任意の場所のみ、キャッシュファイルを使わず常にリアルタイムに動的生成してくれるという機能を補完しています。
すごい!
なので、その機能を使って、常に整合のとれた経過年数を返してくれる簡単な関数をつくってみました(キャッシュを使わなくても有効です)。
■ロジックファイル側:
// 現在の年から当時の年をひいて、相対経過年数を動的に返す
function insert_relativeYear( $value ) {
$relativeYear = (int)( date("Y") - $value['when'] );
if ( ! $value['intFlg'] ) {
if ( $relativeYear === 0 ) {
$relativeYear = "今年";
} elseif ( substr( $relativeYear, 0, 1 ) === "-"
(1/3) 次»
コメント(2)|コメントを書く
カテゴリー一覧
最近のコメント
このブログを友達に教える