Smarty если заявление с датой? - PullRequest
1 голос
/ 17 февраля 2012

Если у меня есть переменная smarty

{$test.date_created}

, который отображает дату в шаблоне smarty, например:

02/2/2012

На умном веб-сайте написано, что вы можете отобразить сегодняшнюю дату следующим образом.

{$smarty.now|date_format:'%m/%d/%Y'}

Как я могу использовать его в операторе if для отображения сообщения, когда ему исполнилось 3 или более дней с сегодняшней даты?

Если ему 3 дня или более, выведите «Старый». Если нет, выведите «New».

Ответы [ 2 ]

2 голосов
/ 17 февраля 2012

Вы можете использовать strtotime(), чтобы получить метку времени, соответствующую трем дням ранее, а затем сравнить ее с датой вашего сообщения. Например, предположим, что $message - это запись вашего сообщения, а $message['date'] - отметка времени, которую вы должны проверить:

$isMessageOld = ($message['date'] <= strtotime('-3 days'));
$smarty->assign('isMessageOld', $isMessageOld);

А потом, в вашем шаблоне:

{if $isMessageOld} ... {/if}

Я не уверен на 100%, но вы также можете проверить это непосредственно в Smarty. Предполагая, что вы передали $message Smarty:

{if $message.date <= strtotime('-3 days')} ... {/if}
1 голос
/ 22 октября 2013

Вы можете легко проверить уже пройденную дату в smarty, используя этот $ smarty.now

$smarty.now|date_format:"%Y%m%d"

Вот пример пересечения старой (пройденной) даты

<{foreach from=$meetings item=m}>
<{if $smarty.now|date_format:"%Y%m%d" <= $m.date|date_format:"%Y%m%d"}>
  <tr>
    <td><{counter}></td>
    <td><{$m.title}> on </td>
    <td><{$m.date}></td>
  </tr>
<{else}>
  <tr>
    <td><strike><{counter}></strike></td>
      <td><strike><{$m.title}> on </strike></td>
      <td><strike><{$m.date}></strike></td>
  </tr>
<{/if}>
<{/foreach}>

Нам нужно создать массив списка собраний в php и назначить его в smarty

$meetings[0]['title'] = "Speech on Gandhi Janyanti";
$meetings[0]['date'] = "2-Oct-2011";
$meetings[1]['title'] = "Meet friend";
$meetings[1]['date'] = "10-Oct-2013";
$meetings[2]['title'] = "Goto USA";
$meetings[2]['date'] = "22-Oct-2013";
$meetings[3]['title'] = "Speech on Gandhi Janyanti";
$meetings[3]['date'] = "2-Oct-2014";
$meetings[4]['title'] = "Meeting with John";
$meetings[4]['date'] = "22-Oct-2014";
$meetings[5]['title'] = "Speech on Gandhi Janyanti";
$meetings[5]['date'] = "2-Oct-2015";
$meetings[6]['title'] = "Meeting with Uncle";
$meetings[6]['date'] = "22-Oct-2015";

$theme->assign("meetings",$meetings);
echo $theme->fetch("index.tpl");
...