我有Smarty模板文件。从Smarty传递到php时,$ listing.activation_date为null。任何解决方案?
{$listing.activation_date}
{php}
$startDate = strtotime('now');
$interval = $startDate - strtotime($this->get_template_vars('$listing.activation_date'));
{$listing.activation_date} = 2012-Sep-05
我已将$ smarty更改为$ this以防止出现非对象错误。
$this->assign("interval", $interval);
$days = floor($this/ (60 * 60 * 24)); {/php}
{if $days < 1} <img src=" {$GLOBALS.site_url}/templates/Natural/main/images/new.gif"/>
{/if}
{php}中的$ days是否正确,然后是Smarty $ days&lt; 1?
答案 0 :(得分:0)
您可以使用内联PHP Smarty赋值并将该变量包装到括号中:
{php}
$startDate = strtotime('now');
$interval = $startDate - strtotime('{$listing.activation_date}');
$smarty->assign("interval", $interval);
{/php}
答案 1 :(得分:0)
在Smarty3中,您不需要{php}:
{$interval = $smarty.now - {$listening.activation_date|strtotime}}
由于Smarty2不允许“复杂”的内联表达,你必须“愚蠢”:
{assign var="now" value=$smarty.now}
{assign var="then" value=$listening.activation_date|strtotime}
{assign var="interval" value=$now-$then}
每当你发现自己使用{php}时,你就会做一些“错误”的事情。 Smarty有一个功能丰富的插件系统,允许您从演示文稿中分离逻辑