如果我有一个聪明的变量
{$test.date_created}
在智能模板中显示日期,例如:
2012年2月2日
在这个聪明的网站上,它说你可以用以下内容显示今天的日期。
{$smarty.now|date_format:'%m/%d/%Y'}
我如何在if语句中使用它来显示从今天起3天或更长时间的消息?
如果3天或更长时间,显示“旧”。如果没有,请显示“新建”。
答案 0 :(得分:2)
您可以使用 strtotime()
获取与三天前相对应的时间戳,然后将其与您的邮件日期进行比较。例如,假设$message
是您的消息记录,$message['date']
是您必须检查的时间戳:
$isMessageOld = ($message['date'] <= strtotime('-3 days'));
$smarty->assign('isMessageOld', $isMessageOld);
然后,在你的模板中:
{if $isMessageOld} ... {/if}
我不是百分百肯定,但您也可以直接在Smarty中测试它。假设您已将$message
传递给Smarty:
{if $message.date <= strtotime('-3 days')} ... {/if}
答案 1 :(得分:1)
您可以使用此$ smarty.now
轻松检查smarty中已通过的日期$smarty.now|date_format:"%Y%m%d"
这是一个跨越旧(通过)日期
的示例<{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中创建会议列表数组并将其分配给smarty
$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");