日期比较逻辑/在液体过滤器中

Date comparison Logic / in Liquid Filter

我正在尝试将预订日期增加 30 天,如果今天的日期更晚,则显示一个文本字符串,如果不是,则显示另一个文本字符串。我哪里出错了?

{% assign assign pre_date = 259200 | plus: order.created_at | date: '%s' %}
{% assign today_date = 'now' | date: '%s' %}
{% if pre_date > today_date %}
disply this
{% else %}
this
{% endif %}

date 过滤 returns 字符串,即使您使用 %s 获取秒数,因此 Shopify 可能会 运行 进入以下情况您正在比较看起来像数字的字符串而不是实际数字

要将您的变量强制转换为正确的数值,我发现最简单的做法是应用中性数学运算(| plus: 0| times: 1

因此您的最终代码可能类似于:

{% assign pre_date = order.created_at | date: '%s' | plus: 259200 %}
{% assign today_date = 'now' | date: '%s' | times: 1 %}

{% if pre_date > today_date %}
  Pre-date is greater
{% else %}
  Today is the day
{% endif %}