Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date 日期比较逻辑/在液体模板过滤器中_Date_Shopify_Liquid_Liquid Layout - Fatal编程技术网

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

Date 日期比较逻辑/在液体模板过滤器中,date,shopify,liquid,liquid-layout,Date,Shopify,Liquid,Liquid Layout,我正在尝试创建一个类似“预订单”的机制,其中Shopify Liquid模板的某些元素仅在当前日期大于或小于元字段中指定的日期时显示 到目前为止,这就是我所拥有的,包括逻辑: <!-- Check Today is correct --> <p>Today: {{'now' | date: '%d-%m-%Y' }}</p> <!-- This is the Metafield Output as a String --> <p>Re

我正在尝试创建一个类似“预订单”的机制,其中Shopify Liquid模板的某些元素仅在当前日期大于或小于元字段中指定的日期时显示

到目前为止,这就是我所拥有的,包括逻辑:

<!-- 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 %}

今天:{'now'|日期:'%d-%m-%Y'}

发布日期:{{product.metafields.Release-Date.preOrder}

{%assign today_date='now'|日期:'%d-%m-%Y'%} {%assign pre_date=product.metafields.Release-date.preOrder%} {%如果今天的日期>之前的日期%} 今天的日期大于预定日期 {%else%} 今天的日期不大于预定日期 {%endif%}
然而,即使我将预订单日期设置为2018年1月1日,它仍然显示“大于”


如何正确查询此字符串?

您不能以这种方式比较字符串。(日期是字符串。)

您必须改用
%s
日期过滤器

因此,它将成为:

{% assign today_date = 'now' | date: '%s' %}
{% assign pre_date = product.metafields.Release-Date.preOrder | date: '%s' %}
{% if today_date > pre_date %}

我们使用
%s
,因为它将返回当前unix时间戳编号而不是字符串。这样,您就可以比较不同的时间戳。

这很完美,也很有意义,我非常感谢您的解释:-)注意,在某些日期比较中,您可能需要将其转换为一个数字,因此我建议两个作业都使用
date:'%s'| times:1