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のマッパーとして使えるので良いかもしれません。








Comment from 通りすがり
Time 2011 年 4 月 18 日 at 2:13 PM
木曜日・・・