如何过滤特定年份的ISO 8601日期

时间:2016-08-12 14:26:27

标签: date liquid

在Adobe Business Catalyst中,它以ISO 8601格式存储日期E.G. 1989-08-01T00:00:00

它们提供了一种检索这些日期的方法:

{module_data resource="customers" version="v3" fields="firstName,middleName,anniversary" skip="0" limit="10" where="\{'id':'{{memberId}}'\}" order="id" collection="crmData"}

为anniversay输出以下内容:

[anniversary1, 1987-08-01T00:00:00][anniversary1Title, Start Year][anniversary2, 1989-08-01T00:00:00][anniversary2Title, End Year][anniversary3, ][anniversary3Title, ][anniversary4, ][anniversary4Title, ][anniversary5, ][anniversary5Title, ]

我只想检索某年的记录(E.G. 1989)。我已经尝试了以下方法,但我非常确定'包含'这是错误的方法:

{module_data resource="customers" version="v3" fields="id,firstName,lastName" skip="0" limit="10" where="\{'anniversary.anniversary2':\{'$contains':'1989'\}\}" order="id" collection="crmData"}

我可以找到我在硬编码日期(包括月份和年份)时所寻找的记录:

{module_data resource="customers" version="v3" fields="id,firstName,lastName" skip="0" limit="10" where="\{'anniversary.anniversary2':'1989-08-01'\}" order="id" collection="crmData"}

当我只知道这一年时,需要一些帮助来完成这项工作。提前谢谢。

1 个答案:

答案 0 :(得分:1)

这就是诀窍。

{% assign first = "2016-01-01T00:00:00" -%}
{{first}}
{% assign last = "2017-01-01T00:00:00" -%}
{{last}}
{module_data resource="customers" version="v3" fields="id,firstName,lastName" skip="0" limit="10" where="\{'$and':\[\{'anniversary.anniversary1':\{'$lt':'{{last}}'\}\},\{'anniversary.anniversary1':\{'$gt':'{{first}}'\}\}\]\}" order="id" collection="myData"}

<div>
<pre>{{myData|json}}</pre>
</div>

如果您需要更多帮助,请与我联系。