用于检查日期是否没有时间成分的液体模板逻辑?字符串比较失败

Liquid template logic to check if a date has no time component? String comparison fails

仅当 page.date 具有定义的时间时,我才尝试将液体条件设为 运行。

假设 page.date 是“2019-07-17 00:00:00 -0700”。

我发现 12 小时 (%r) 时间默认是凌晨 12 点,所以我尝试了这个 hack(我不太担心用户实际设置的时间 12:00:00尖锐,造成误报):

{% if page.date | date: "%r" != "12:00:00 AM" %}
    <p>The page's date has a time.</p>
{% else %}
    <p>The page's date has no time.</p>

上面的块输出 "The page's date has a time.",根据我的条件这是不正确的(即 12am = "no time")。

我还尝试了以下方法,在 date 格式化程序的右侧使用和不使用 | json 管道:

将所有这些格式呈现到一个页面会验证我在这些条件中输入的值,但我的字符串比较仍然不正确。有没有办法在 Liquid 中做到这一点?

您不能在条件中进行过滤。 {% if page.date | date: "%r" != "12:00:00 AM" %} 产生错误。

你可以assign,然后compare

{% assign time = page.date | date: "%r" %}

{% if time != "12:00:00 AM" %}
    <p>The page's date has a time.</p>
{% else %}
    <p>The page's date has no time.</p>
{% endif %}