Smarty日期和时间比较

时间:2014-12-15 15:25:54

标签: php date templates smarty

我不能为我的生活找到一种方法来比较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}

由于

1 个答案:

答案 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