用于检查日期是否没有时间成分的液体模板逻辑?字符串比较失败
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
管道:
{% if page.date | date: "%T" != "00:00:00" %}
{% if page.date | date: "%R" != "00:00" %}
将所有这些格式呈现到一个页面会验证我在这些条件中输入的值,但我的字符串比较仍然不正确。有没有办法在 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 %}
仅当 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
管道:
{% if page.date | date: "%T" != "00:00:00" %}
{% if page.date | date: "%R" != "00:00" %}
将所有这些格式呈现到一个页面会验证我在这些条件中输入的值,但我的字符串比较仍然不正确。有没有办法在 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 %}