Liquid : 如何在约会时进行数学运算?

Liquid : How To Do Math Operations On Date?

我在 Microsoft CRM 门户中使用 liquid。我想从日期中获取秒数,然后对它们进行一些操作,但我遇到了一些问题。

  1. 为了根据 this site 获得秒数:我必须使用过滤器“%S”,但是当我这样做时,我得到的只是大写字母 S。根据到同一个站点,如果我使用过滤器“%s”,我应该从纪元中获取以秒为单位的时间,但这实际上给了我秒数。所以我正在使用这条线:

    {% 分配秒 = "现在" |日期:“%s” %}

  2. 如果我尝试对结果使用 plus: 操作,它不会添加 5,而是在末尾连接 5。根据this post日期returns一个字符串。 (同样,post 它也说数学应该在字符串上工作,如果它只是一个数字,并且 "%s" 应该 return unix 时间,但我无法得到这些部分工作)。

  3. 根据this post,字符串可以通过乘以 1 或加 0 来转换为整数。加 0 不起作用,因为它在末尾连接它。另一方面,乘以 1 似乎可行,但如果我尝试在结果中添加一个数字,我会收到一条错误消息:“液体错误:参数计数不匹配。

完整代码如下:

{% assign seconds = "now" | date:"%s" %}
{% assign test1 = seconds | plus:5 %}
<p>{{test1}}</p>
{% assign test2 = seconds | times:1 %}
<p>{{test2}}</p>
{% assign test3 = test2 | plus:10 %}
<p>{{test3}}</p>

这是输出:

305
30
Liquid error: Parameter count mismatch

我很确定我做错了什么,但我不知道是什么。如果有人能帮我解决,我将不胜感激。

谢谢

尝试

{% assign seconds = now | date: '%s' | integer %}
{% assign test1 = seconds | plus: 5 %}
  • now 不需要括号,也不应该用引号引起来
  • 's'表示秒
  • integer 将结果转换为数字

The "s" custom format specifier represents the seconds as a number from 0 through 59. The result represents whole seconds that have passed since the last minute. A single-digit second is formatted without a leading zero.

参考资料