我一辈子都找不到在 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}
谢谢
最佳答案
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
关于php - Smarty 日期和时间比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27487395/