日期比较逻辑 / 在 Liquid 模板过滤器中
Date comparison Logic / in Liquid Template Filter
我正在尝试创建一个 "Pre-Order" Like 机制,其中我的 Shopify Liquid 模板的某些元素仅在当前日期早于或少于 Metafield 中指定的日期时显示。
截至目前,这是我所拥有的,包括逻辑:
<!-- Check Today is correct -->
<p>Today: {{'now' | date: '%d-%m-%Y' }}</p>
<!-- This is the Metafield Output as a String -->
<p>Release Date: {{ product.metafields.Release-Date.preOrder }}</p>
<!-- Assign Variable "today_date" to the current date -->
{% assign today_date = 'now' | date: '%d-%m-%Y' %}
<!-- Assign Variable "pre_date" to the string of the metafield -->
{% assign pre_date = product.metafields.Release-Date.preOrder %}
{% if today_date > pre_date %}
Today's date is greater than PreOrder Date
{% else %}
Today's date is not greater than PreOrder Date
{% endif %}
但是,即使我将预订日期设置为 01-01-2018,它仍然显示 "Is greater than"。
如何正确查询这个?
你不能这样比较字符串。 (日期是字符串。)
您必须改用 %s
日期过滤器。
所以会变成:
{% assign today_date = 'now' | date: '%s' %}
{% assign pre_date = product.metafields.Release-Date.preOrder | date: '%s' %}
{% if today_date > pre_date %}
我们使用 %s
因为它将 return 当前 unix 时间戳数字而不是字符串。这样您就可以比较不同的时间戳。
我正在尝试创建一个 "Pre-Order" Like 机制,其中我的 Shopify Liquid 模板的某些元素仅在当前日期早于或少于 Metafield 中指定的日期时显示。
截至目前,这是我所拥有的,包括逻辑:
<!-- Check Today is correct -->
<p>Today: {{'now' | date: '%d-%m-%Y' }}</p>
<!-- This is the Metafield Output as a String -->
<p>Release Date: {{ product.metafields.Release-Date.preOrder }}</p>
<!-- Assign Variable "today_date" to the current date -->
{% assign today_date = 'now' | date: '%d-%m-%Y' %}
<!-- Assign Variable "pre_date" to the string of the metafield -->
{% assign pre_date = product.metafields.Release-Date.preOrder %}
{% if today_date > pre_date %}
Today's date is greater than PreOrder Date
{% else %}
Today's date is not greater than PreOrder Date
{% endif %}
但是,即使我将预订日期设置为 01-01-2018,它仍然显示 "Is greater than"。
如何正确查询这个?
你不能这样比较字符串。 (日期是字符串。)
您必须改用 %s
日期过滤器。
所以会变成:
{% assign today_date = 'now' | date: '%s' %}
{% assign pre_date = product.metafields.Release-Date.preOrder | date: '%s' %}
{% if today_date > pre_date %}
我们使用 %s
因为它将 return 当前 unix 时间戳数字而不是字符串。这样您就可以比较不同的时间戳。