如果我有一個智者變量Smarty if if date with date?
{$test.date_created}
顯示在智者模板的日期,例如:
2012年2月2日
在Smarty的網站,它說,您可以使用以下顯示今天的日期。
{$smarty.now|date_format:'%m/%d/%Y'}
如何在if語句中使用它,以便在從今天的日期起3天或更多時顯示消息?
如果其3天或更長時間顯示「舊」。如果不是,則顯示「新建」。
如果我有一個智者變量Smarty if if date with date?
{$test.date_created}
顯示在智者模板的日期,例如:
2012年2月2日
在Smarty的網站,它說,您可以使用以下顯示今天的日期。
{$smarty.now|date_format:'%m/%d/%Y'}
如何在if語句中使用它,以便在從今天的日期起3天或更多時顯示消息?
如果其3天或更長時間顯示「舊」。如果不是,則顯示「新建」。
您可以使用strtotime()
獲取三天前對應的時間戳,然後將其與您的消息日期進行比較。例如,假設$message
是你的消息記錄和$message['date']
是你必須檢查時間戳:
$isMessageOld = ($message['date'] <= strtotime('-3 days'));
$smarty->assign('isMessageOld', $isMessageOld);
,然後在你的模板:
{if $isMessageOld} ... {/if}
我不是100%肯定,但你也可以在Smarty中直接進行測試。假設你有$message
傳遞給Smarty:使用此$ smarty.now
$smarty.now|date_format:"%Y%m%d"
這裏是穿越老(通過)最新的一個例子
{if $message.date <= strtotime('-3 days')} ... {/if}
可以輕鬆地檢查已經在智者通過日期
<{foreach from=$meetings item=m}>
<{if $smarty.now|date_format:"%Y%m%d" <= $m.date|date_format:"%Y%m%d"}>
<tr>
<td><{counter}></td>
<td><{$m.title}> on </td>
<td><{$m.date}></td>
</tr>
<{else}>
<tr>
<td><strike><{counter}></strike></td>
<td><strike><{$m.title}> on </strike></td>
<td><strike><{$m.date}></strike></td>
</tr>
<{/if}>
<{/foreach}>
我們需要建立在PHP會議列表陣列和智者爲它分配
$meetings[0]['title'] = "Speech on Gandhi Janyanti";
$meetings[0]['date'] = "2-Oct-2011";
$meetings[1]['title'] = "Meet friend";
$meetings[1]['date'] = "10-Oct-2013";
$meetings[2]['title'] = "Goto USA";
$meetings[2]['date'] = "22-Oct-2013";
$meetings[3]['title'] = "Speech on Gandhi Janyanti";
$meetings[3]['date'] = "2-Oct-2014";
$meetings[4]['title'] = "Meeting with John";
$meetings[4]['date'] = "22-Oct-2014";
$meetings[5]['title'] = "Speech on Gandhi Janyanti";
$meetings[5]['date'] = "2-Oct-2015";
$meetings[6]['title'] = "Meeting with Uncle";
$meetings[6]['date'] = "22-Oct-2015";
$theme->assign("meetings",$meetings);
echo $theme->fetch("index.tpl");
不錯,但你會做的更好:'{if $ smarty.now <= $ m.date.value|@strtotime}' – 2014-01-11 20:08:01