我与约会:{$smarty.now|date_format:'%Y-%m-%d %H:%M:%S'}
smarty和约会
但如何获得20天后?
如果现在:2010 05 05 12:12:12
,我希望显示2010 25 05 12:12:12
我与约会:{$smarty.now|date_format:'%Y-%m-%d %H:%M:%S'}
smarty和约会
但如何获得20天后?
如果现在:2010 05 05 12:12:12
,我希望显示2010 25 05 12:12:12
使用strtotime()
PHP函数和你的变量分配给智者。事情是这样的:
<?php
$later = strtotime('+20 day');
$smarty->assign('later', $later);
?>
然后在模板:
{ $later|date_format:'%Y-%m-%d %H:%M:%S'}
{$smarty.now}
是一个简单的时间戳(秒数自1970年以来)。所以,你可以尽可能多秒只是添加到它,你需要:
{$smarty.now+20*24*60*60|date_format:'%Y-%m-%d %H:%M:%S'} //+20 days
这工作在Smarty3,如果不是在旧版本,那么你可能需要做数学与{assign}
和/或{math}
指令。
这也适用于Smarty 2我可以确认。 – crmpicco 2013-01-21 13:26:21
您可以直接使用strtotime()作为修饰符。
{"+20 days"|strtotime|date_format:"Y/m/d"}
在智者的新版本会的strtotime任何字符串你在前面加上
即而不是做{$smarty.now|date_format:'%Y-%m-%d %H:%M:%S'}
你也可以做{"now"|date_format:'%Y-%m-%d %H:%M:%S'}
从现年20天就日期,你可以这样做:
{"+20 days"|date_format:"%Y-%m-%d"}
在智者测试:加1天,2天..... .365天在动态日期。
$one= date("Y-m-d", strtotime(date("Y-m-d", strtotime('$add dynamic date variable')) . " + 1 day"));
$this->smarty->assign('one',$one);
$two= date("Y-m-d", strtotime(date("Y-m-d", strtotime('$add dynamic date variable')) . " + 2 day"));
$this->smarty->assign('two',$two);
...
..
$oneyear= date("Y-m-d", strtotime(date("Y-m-d", strtotime('$add dynamic date variable')) . " + 365 day"));
$this->smarty->assign('oneyear',$oneyear);
{assign var="iItemOne" value=$smarty.now}
{assign var="iItemTwo" value=1296000} //60*60*24*15-> for 15 days
{assign var="iSum" value=$iItemOne+$iItemTwo}
{$iSum|date_format:'%Y-%m-%d %H:%M:%S'}
谢谢,但我不能使用PHP代码。也许是只有Smarty的决定? – lolalola 2010-07-14 18:46:58
现在有其他的答案,完全依赖于smarty并且不需要PHP代码 – skrilled 2014-10-07 20:15:14