Nette如何从当前日期中减去时间戳

时间:2017-01-18 15:10:28

标签: date nette latte

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

1 个答案:

答案 0 :(得分:1)

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

{expression_to_be_printed|filter1|filter2|filter3}

date过滤器主要只是calls format method,因此您可以直接使用它:

{(new DateTime())->format('z') - $timestamp->format('z')}

但是,如果$timestamp位于不同的年份,则无效。 要解决此问题,您可以使用DateTime的{​​{3}}方法。该方法返回的DateInterval可以使用diff方法进行格式化,该方法通过%a格式化字符串提供天数差异。

{$timestamp->diff(new DateTime())->format('%a')}

幸运的是,date过滤器还允许格式化间隔。

{$timestamp->diff(new DateTime())|date:'%a'}

不可否认,这看起来很丑陋。更好的方法是定义自定义过滤器,以便只使用{$post->timestamp|daysAgo}。有关创建自己的过滤器的信息,请参阅format