聪明和约会

时间:2010-07-14 17:33:05

标签: smarty

我的日期是:{$smarty.now|date_format:'%Y-%m-%d %H:%M:%S'}

但是如何在20天后获得?

如果现在:2010 05 05 12:12:12,我希望显示2010 25 05 12:12:12

6 个答案:

答案 0 :(得分:18)

{$smarty.now}是一个简单的时间戳(自1970年以来的秒数)。因此,您可以根据需要添加任意秒数:

{$smarty.now+20*24*60*60|date_format:'%Y-%m-%d %H:%M:%S'} //+20 days

这适用于Smarty3,如果不是旧版本,则可能需要使用{assign}和/或{math}指令进行数学运算。

答案 1 :(得分:7)

使用strtotime() php函数并将变量分配给smarty。像这样:

<?php
$later = strtotime('+20 day');
$smarty->assign('later', $later);
?>

然后在模板中:

{ $later|date_format:'%Y-%m-%d %H:%M:%S'}

答案 2 :(得分:3)

您可以直接使用strtotime()作为修饰符。

{"+20 days"|strtotime|date_format:"Y/m/d"}

答案 3 :(得分:1)

在较新版本的smarty中,它将使您前置的任何字符串都显示为

即。而不是{$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"}

答案 4 :(得分:0)

{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'}

答案 5 :(得分:-1)

在smarty中测试:在动态日期添加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);