php - Smarty 日期和时间比较

标签 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}

谢谢

最佳答案

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/

相关文章:

c++ - 模板类特化缺少成员

c++ - 模板类调用了错误的复制构造函数

javascript - 更改字段属性

javascript - 将日期从字符串转换为日期 Javascript

php - 如何升级 composer.lock 中的选定包?

php - 如何获取特定用户的数据,但来自不同的表

php - 在代码中使用 Julian Dates 有好处吗?

powershell - .NET Core 3.0预览版中缺少blazorwasm模板

php - 防止数组重复

php - 如何使用 trim() 并更新 mysql 中的所有行