尝试日期功能。想要列出只有10天的帖子,比这个更早,我不会显示。我有这个问题:
dayOfYear($ now)-dayOfYear(p.TS_create)< 10 and year($ now)= year(p.TS_create)
内部:
<mak:list from="general.forum.Post p" where="dayOfYear($now)-dayOfYear(p.TS_create)<10 and year($now)=year(p.TS_create)">
它有效,但只想询问是否有更好的方法来做到这一点。
答案 0 :(得分:1)
这可能不是最好的选择。
首先year($now)=year(p.TS_create)
将导致1月1日你不会看到前几年最后9天的帖子(我想你也想看到这些帖子)。
否则,dayOfYear()
可能会起作用,但由于它代表一年中的一天(而不是自可能的最后日期以来的总天数),更好的选择是使用以下内容:
dateAdd(p.TS_create, 10, 'day') > now()
P.S。另外请记住,如果使用$now
,则必须将其设置为上下文属性,但是在MQL中,您可以使用函数now()
来代替它。因此,如果您未在页面中的其他位置使用$now
(例如在c:if
语句中),则最好使用该功能。
答案 1 :(得分:0)
另一种选择是使用日期的数字表示(以毫秒为单位),如下所示:
unix_timestamp(now()) - unix_timestamp(p.TS_create) < 10 * 24 * 60 * 60 * 1000
(10 * 24 * 60 * 60 * 1000等于10天)
请注意,两个解决方案(使用毫秒或dateAdd(p.TS_create,10,'day')&gt; now())实际上会比较240小时,并忽略日历天。