Smartyで日本語の曜日を返すプラグイン

By nakayama - 09/07/24 - このエントリをはてなブックマークに追加このエントリをYahoo!ブックマークに追加このエントリをdel.icio.usに追加このエントリをFC2ブックマークに追加

Smartyで日付から日、月、・・・と日本語の曜日を返したい時があります。
 

{"2009-07-24"|date_format:"%a"}

と、Smartyのdate_format関数を使えば一応返ってくるのですが、
ロケールに影響を受けたり、文字コードが内部コードと違っていたりで
挙動がどうも不安定なので独自のプラグインを作ってみました。
 

プラグインソース

/**
 * 日付から日本語の曜日名を返す
 * 
 * @params strings(YYYY-MM-DD)  $date    日付
 * @return  strings $_jpnweeks[] 日本語の曜日
 *
 */
function smarty_modifier_get_ja_week($date)
{
    $_jpnweeks = array('日', '月', '火', '水', '金', '土');
 
    preg_match("/([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})/", $date, $match);
    $mktime= mktime(0, 0, 0, $match[2], $match[3], $match[1]);
    $week = strftime("%w", $mktime);
    return $_jpnweeks[$week];

}

 

テンプレート側記述

{"2009-07-24"|get_ja_week}

 
追記:既に『jp_date_format』というプラグインを作られた方がおられました。
こちらの方がdate_formatのマッパーとして使えるので良いかもしれません。
 


Posted in Smarty • Tags: , , Top Of Page