1

如何从拿铁咖啡中的当天(日期('z'))减去天数(时间戳|日期'z')?我尝试使用 var 但这不喜欢格式化(z)。

4

1 回答 1

1

与函数调用不同,Latte 过滤器不能应用于表达式的任何部分——它们只是可变打印宏的可选功能。

{expression_to_be_printed|filter1|filter2|filter3}

datefilter 主要只是调用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 回答