умница и дата - PullRequest
       28

умница и дата

12 голосов
/ 14 июля 2010

я получаю дату с: {$smarty.now|date_format:'%Y-%m-%d %H:%M:%S'}

Но как получить 20 дней спустя?

Если сейчас: 2010 05 05 12:12:12, я хочу показать 2010 25 05 12:12:12

Ответы [ 6 ]

18 голосов
/ 16 июля 2010

{$smarty.now} - простая временная метка (количество секунд с 1970 года).Таким образом, вы можете просто добавить столько секунд, сколько вам нужно:

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

Это работает в Smarty3, если не в более старых версиях, то вам, возможно, придется выполнить математику с {assign} и / или {math} директивы.

7 голосов
/ 14 июля 2010

Используйте функцию strtotime() php и присвойте свою переменную smarty.Примерно так:

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

Тогда в шаблоне:

{ $later|date_format:'%Y-%m-%d %H:%M:%S'}
3 голосов
/ 18 июля 2014

Вы можете использовать strtotime () напрямую как модификатор.

{"+20 days"|strtotime|date_format:"Y/m/d"}
1 голос
/ 08 октября 2014

В более новых версиях 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"}

0 голосов
/ 21 апреля 2016
{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'}
0 голосов
/ 12 декабря 2014

Проверено в 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);
...