Liquid : 如何在约会时进行数学运算?
Liquid : How To Do Math Operations On Date?
我在 Microsoft CRM 门户中使用 liquid。我想从日期中获取秒数,然后对它们进行一些操作,但我遇到了一些问题。
为了根据 this site 获得秒数:我必须使用过滤器“%S”,但是当我这样做时,我得到的只是大写字母 S。根据到同一个站点,如果我使用过滤器“%s”,我应该从纪元中获取以秒为单位的时间,但这实际上给了我秒数。所以我正在使用这条线:
{% 分配秒 = "现在" |日期:“%s” %}
如果我尝试对结果使用 plus: 操作,它不会添加 5,而是在末尾连接 5。根据this post日期returns一个字符串。 (同样,post 它也说数学应该在字符串上工作,如果它只是一个数字,并且 "%s" 应该 return unix 时间,但我无法得到这些部分工作)。
根据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.
参考资料
- https://community.adxstudio.com/products/adxstudio-portals/documentation/configuration-guide/liquid-templates/filters/date-filters/
- https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings#sSpecifier
- https://community.adxstudio.com/products/adxstudio-portals/documentation/configuration-guide/liquid-templates/filters/type-filters/#integer
- https://community.adxstudio.com/products/adxstudio-portals/documentation/configuration-guide/liquid-templates/filters/math-filters/#plus
我在 Microsoft CRM 门户中使用 liquid。我想从日期中获取秒数,然后对它们进行一些操作,但我遇到了一些问题。
为了根据 this site 获得秒数:我必须使用过滤器“%S”,但是当我这样做时,我得到的只是大写字母 S。根据到同一个站点,如果我使用过滤器“%s”,我应该从纪元中获取以秒为单位的时间,但这实际上给了我秒数。所以我正在使用这条线:
{% 分配秒 = "现在" |日期:“%s” %}
如果我尝试对结果使用 plus: 操作,它不会添加 5,而是在末尾连接 5。根据this post日期returns一个字符串。 (同样,post 它也说数学应该在字符串上工作,如果它只是一个数字,并且 "%s" 应该 return unix 时间,但我无法得到这些部分工作)。
根据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.
参考资料
- https://community.adxstudio.com/products/adxstudio-portals/documentation/configuration-guide/liquid-templates/filters/date-filters/
- https://docs.microsoft.com/en-us/dotnet/standard/base-types/custom-date-and-time-format-strings#sSpecifier
- https://community.adxstudio.com/products/adxstudio-portals/documentation/configuration-guide/liquid-templates/filters/type-filters/#integer
- https://community.adxstudio.com/products/adxstudio-portals/documentation/configuration-guide/liquid-templates/filters/math-filters/#plus