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

时间:2019-07-18 01:03:15

标签: date datetime if-statement jekyll liquid

我正试图让Liquid条件仅在page.date具有定义的时间时运行。

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

我发现默认情况下,12小时(%r)的时间默认为上午12点,所以我尝试了这种破解方法(我不太担心用户实际上将时间设置为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>

上面的代码块输出“页面的日期有时间。”,根据我的情况,这是不正确的(12am =“ no time”)。

我还尝试了以下操作,在| json格式化程序的右侧有无date管道:

  • {% if page.date | date: "%T" != "00:00:00" %}

  • {% if page.date | date: "%R" != "00:00" %}

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

1 个答案:

答案 0 :(得分:1)

您无法过滤条件。 {% 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 %}