问题描述
我想根据当前年份和月份信息执行 SMW 查询。问题:似乎我需要以非静态方式将值输入 SMW ask 部分,因为我无法对这些值进行硬编码。我怎样才能做到这一点并执行这样的查询?
解决方法
使用{{#time:}}
parser function。 SMW 能够理解的日期格式被指定为 here。下面,我使用了 d.m.Y
和 d xg Y
,它们肯定可以在俄语维基中使用。
使用 Unix 格式(U
,自 Unix 时代以来的秒数;使用 @
将其转换回日期对象)进行日期算术。
示例(假设您激活了特殊属性 Creation date):
<!-- Pages created today -->
{{#ask:
[[Creation date::>={{#time:d.m.Y}}]]
}}
<!-- Pages created yesterday -->
{{#ask:
[[Creation date::>={{#time:d xg Y|@{{#expr:{{#time:U}}-86400}}}}]]
[[Creation date::<{{#time:d xg Y}}]]
}}
,
您也可以使用 MediaWiki 魔术词 https://www.mediawiki.org/wiki/Help:Magic_words/de 例如
{{#ask:
[[Modification date::>={{CURRENTYEAR}}-{{CURRENTMONTH}}-{{CURRENTDAY2}}]]
}}