我不能为我的生活找到一种方法来比较Smarty模板中的日期和时间。
单独的日期工作完美,但是第二个你增加了几个小时:
{if $smarty.now|date_format:"%Y/%m/%d %H:%M" > '2015/12/10 12:00'}
greater 2015/12/10 12:00- {$smarty.now|date_format:"%Y/%m/%d %H:%M"}
{else}
smaller 2015/12/10 12:00- {$smarty.now|date_format:"%Y/%m/%d %H:%M"}
{/if}
date_format是strtotime的包装器,因此比较应该与时间和日期一起使用?
DATE这样没问题:
{if $smarty.now|date_format:"%Y/%m/%d" > '2015/12/10'}
greater 2015/12/10- {$smarty.now|date_format:"%Y/%m/%d"}
{else}
smaller 2015/12/10- {$smarty.now|date_format:"%Y/%m/%d"}
{/if}
由于
答案 0 :(得分:0)
Smarty不在进行日期数学运算。这是一个字符串比较。 将“ 2015-12-10 12:00:00”更改为“ 20151210120000”应该可以对您期望的方式进行排序/比较。
类似这样的东西:
{assign var="simpleDate" value="2015-12-10 12:00:00"}
{if $testDate:date_format:"%Y%m%d%H%m%S" > $smarty.now|date_format:"%Y%m%d%H%m%S"}Greater Than{/if}
{if $testDate|date_format:"%Y%m%d%H%m%S" < $smarty.now|date_format:"%Y%m%d%H%m%S"}Less Than{/if}
确保在比较中保留那些前导零。没有他们就行不通。
日期格式的详细信息可以在这里找到。 https://www.smarty.net/docsv2/en/language.modifier.date.format