如何从拿铁咖啡中的当天(日期('z'))减去天数(时间戳|日期'z')?我尝试使用 var 但这不喜欢格式化(z)。
问问题
284 次
1 回答
1
与函数调用不同,Latte 过滤器不能应用于表达式的任何部分——它们只是可变打印宏的可选功能。
{expression_to_be_printed|filter1|filter2|filter3}
date
filter 主要只是调用format
方法,因此您可以直接使用它:
{(new DateTime())->format('z') - $timestamp->format('z')}
$timestamp
但是,如果谎言发生在不同的年份,这将不起作用。要解决此问题,您可以使用DateTime
'diff
方法。DateInterval
,由该方法返回,然后可以使用通过格式化字符串format
提供天数差异的方法进行格式化。%a
{$timestamp->diff(new DateTime())->format('%a')}
幸运的是,date
过滤器还允许格式化间隔。
{$timestamp->diff(new DateTime())|date:'%a'}
诚然,这看起来有点丑陋。更好的方法是定义一个自定义过滤器,这样您就可以使用{$post->timestamp|daysAgo}
. 请参阅有关创建自己的过滤器的Latte 文档。
于 2017-01-18T16:14:04.833 回答