Smarty Date用于TPL文件

时间:2013-10-28 06:11:15

标签: smarty

我有一个公告要做到某个日期,所以我创建了一个时间变量

$announcedate = strtotime('+6 day');
$now = "1382960040";
$smarty->assign('announcedate', $announcedate);
$smarty->assign('now', $now);

并包含在tpl文件中

{if $now > $announcedate}My Announcement{/if}

我想在使用之前确定并在第6天之后专门结束公告。

这是正确的方法吗?或任何其他指导?

1 个答案:

答案 0 :(得分:1)

简而言之:这将按照您的意愿运作。

但是,我想补充一些建议:

strtotime()返回一个整数,并将其与字符串进行比较。这不一定会导致您的用例出现问题,但无论如何都应该进行改进。像这样的简单更新改变了:

$announcedate = strtotime('+6 day');
$now = strtotime('now');

您的解决方案适用于您的特定任务,但不是很一般。如果您想将此代码重用于其他目的(例如其他公告),您很可能必须调整逻辑。出于这些原因,为了保持与显示层一样多的逻辑,我只会在我的PHP代码中检查公告。

这看起来像这样:

php(伪代码,想法是,函数myAnncouncements()检索特定时间段或其他所需的公告:

$smarty->assign('announcements', myAnncouncements());

smarty模板:

{if isset($announcements)}
    {foreach $announcements as $item}
         // whatever is needed in here....
    {/foreach}
{/if}
相关问题