我有一个公告要做到某个日期,所以我创建了一个时间变量
$announcedate = strtotime('+6 day');
$now = "1382960040";
$smarty->assign('announcedate', $announcedate);
$smarty->assign('now', $now);
并包含在tpl文件中
{if $now > $announcedate}My Announcement{/if}
我想在使用之前确定并在第6天之后专门结束公告。
这是正确的方法吗?或任何其他指导?
答案 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}