【问题标题】:Liquid : How To Do Math Operations On Date?Liquid : 如何在日期上进行数学运算?
【发布时间】:2020-11-11 07:36:43
【问题描述】:

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

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

    {% 指定秒数 = "现在" |日期:“%s”%}

  2. 如果我尝试在结果上使用 plus: 操作,而不是加 5,它会在最后连接 5。根据this post date 返回一个字符串。 (同样,帖子还说,如果它只是一个数字,那么数学应该在一个字符串上工作,并且“%s”应该返回 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

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

谢谢

【问题讨论】:

    标签: liquid dynamics-crm-portals


    【解决方案1】:

    试试

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

    “s”自定义格式说明符将秒数表示为从 0 到 59 的数字。结果表示自上一分钟以来经过的整秒。一位数秒的格式不带前导零。

    参考文献

    【讨论】:

    • 成功了!!非常感谢。如果有人将其用作进一步参考,请注意,为了使其正常工作,我必须将 date: 's' 更改为 date: '%s'
    • 我更新了我的答案以包含%。我很高兴它有效!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多