date_format修飾子 日付と時間を整形する

日付と時間を strftime() のフォーマットに基づいて整形する。
与える変数はPHP の strtotime() でパース可能な日付で、Unix タイムスタンプ や MySQL タイムスタンプ、 月・日・年で構成された文字列です。

Smarty-2.6.10 以降、date_format に渡された数値は 常にUnix タイムスタンプとして解釈されるようになりました。
(MySQL タイムスタンプは例外)

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

唯一の例外は、MySQL タイムスタンプです。これは数値のみで、文字数は14文字 ("YYYYMMDDHHMMSS") です。
MySQL タイムスタンプは UNIX タイムスタンプより優先される。

date_format は、本質的には PHP の strftime() 関数のラッパーです。
strftime() の実装によって、利用可能な変換指定子が多少変わります。

パラメータの位置必須デフォルト概要
1stringNo%b %e, %Y日付の表示フォーマット
2stringNon/a入力が空のときのデフォルトの日付

date_format の変換指定子

指定子説明
%a現在のロケールに基づく短縮された曜日の名前
%A現在のロケールに基づく完全な曜日の名前
%b現在のロケールに基づく短縮された月の名前
%B現在のロケールに基づく完全な月の名前
%c現在のロケールに基づく適当な日付と時間の表現
%C世紀(年を100で割り、整数に丸めたもの。00から99)
%d10進数の日付(01から31)
%D%m/%d/%yと同じ
%e月単位の日付を10進数で表したもの。日付が1桁の場合は、前に空白を一つ付ける。('1'から'31')
%g西暦の下二桁 [00,99]
%G西暦 [0000,9999]
%h%bと同じ。
%H時間を24時間表示の10進数で(00から23まで)
%I時間を12時間表示の10進数で(01から12までの範囲)
%j年間での日付を10進数で表現 (001から366)
%k24時間表示の時間の一桁目に空白を入れる ( 0 から 23までの範囲)
%l12時間表示の時間の一桁目に空白を入れる ( 1 から 12までの範囲)
%m月を10進数で表現 (01から12)
%M分を10進数で表現
%n改行文字
%p指定した時間により `am' または `pm' 、または 現在のロケールに対応した文字列
%ra.m.およびp.m.表記で表した時間
%R24時間表記で表した時間
%S10進数で表した秒
%tタブ文字
%T現在の時間。%H:%M:%Sに等しい。
%u10進数表記の曜日で[1,7]の範囲。1が月曜日。
%U年間で何番目の週であるかを 10 進数で表現。年間で最初の日曜を最初の週の最初の日として数えます。
%VISO 8601:1988で規定された現在の年の週番号の10進数表現で 01から53までの範囲となります。 1は最初の週でその週は現在の年に 最低4日はあります。週は月曜日から始まります。
%w曜日を10進数で表現。日曜は0になります。
%W現在の年で何番目の週であるかを10進数で表現。 年間で最初の月曜を最初の週の最初の日として数えます。
%x時間を除いた日付を現在のロケールに基づき表現します。
%X日付を除いた時間を現在のロケールに基づき表現します。
%y世紀の部分を除いた年を10進数として表現。(00から99までの範囲)
%Y世紀を含む年を10進数で表現
%Zタイムゾーンまたはその名前または短縮形
%%文字リテラル`%'

PHP

$config['date'] = '%I:%M %p';
$config['time'] = '%H:%M:%S';
$smarty->assign('config', $config);
$smarty->assign('yesterday', strtotime('-1 day'));

テンプレート

{$smarty.now|date_format}
{$smarty.now|date_format:"%D"}
{$smarty.now|date_format:$config.date}
{$yesterday|date_format}
{$yesterday|date_format:"%A, %B %e, %Y"}
{$yesterday|date_format:$config.time}

出力

Jan 1, 2009
01/01/09
04:23 am
Dec 31, 2008
Monday, December 1, 2008
04:23:00

関連記事

スポンサーリンク

:first-letter擬似要素にマージンが設置されない

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る