日期计算

工作流: 日期计算节点社区版+

介绍

日期计算节点提供了包括增加时间段,减少时间段,时间字符串的格式化输出,时长单位转换在内的九种计算函数,每个函数都有特定的输入值类型和输出值类型,同时还能接收其他节点结果作为参数变量,并采用计算管道的方式将配置好的函数计算结果串连起来,最后得到一个预期的输出。

创建节点

在工作流配置界面中,点击流程中的加号(“+”)按钮,添加“时间计算”节点:

日期计算节点_创建节点

节点配置

日期计算节点_节点配置

输入值

输入值可以选择变量或者是日期的常量,变量可以是触发这个工作流的数据,也可以是这个工作流中上游节点的结果,常量则可以选择任何一个日期。

输入值类型

指代输入值的类型,有两种取值。

  • 日期类型:指输入值最终能转换为日期时间的类型,比如数值类型的时间戳或者是指代时间的字符串。
  • 数值类型:由于输入值的类型会影响下面时间运算步骤的选择,因此需要正确选择输入值的类型。

计算步骤

每个计算步骤由一个计算函数和其参数配置组成,同时采用的是管道化的设计,上一个函数计算得到的结果会作为下一个函数计算的输入值继续参与计算,通过这种方式,可以完成一系列的时间计算和转换。

每个计算步骤之后,输出的类型也是固定的,并会影响下一步计算可使用的函数,类型匹配才可以继续计算。否则一个步骤的结果将作为最后节点的输出结果。

计算函数

加一段时间

  • 接收输入值类型:日期
  • 参数
    • 增加的数量,可以填写数字,也可以选择节点内置的变量。
    • 时间单位。
  • 输出值类型:日期
  • 示例:输入值为 2024-7-15 00:00:00,数量为 1,单位为“天”时,则计算结果为 2024-7-16 00:00:00

减一段时间

  • 接收输入值类型:日期
  • 参数
    • 减少的数量,可以填写数字,也可以选择节点内置的变量。
    • 时间单位。
  • 输出值类型:日期
  • 示例:输入值为 2024-7-15 00:00:00,数量为 1,单位为“天”时,则计算结果为 2024-7-14 00:00:00

计算与另一个时间的差值

  • 接收输入值类型:日期
  • 参数
    • 需要计算差值的日期,可以选择一个日期常量,也可以选择工作流上下文中的变量。
    • 时间单位。
    • 是否取绝对值。
    • 取整操作:可选择保留小数,四舍五入,向上取整和向下取整。
  • 输出值类型:数值
  • 示例:输入值为 2024-7-15 00:00:00,比较对象为 2024-7-16 06:00:00,单位为“天”,不取绝对值,保留小数时,则计算结果为 -1.25
提示

绝对值和取整同时配置时,会先取绝对值再取整。

取时间在特定单位上的数值

  • 接收输入值类型:日期
  • 参数
    • 时间单位。
  • 输出值类型:数值
  • 示例:输入值为 2024-7-15 00:00:00,单位为“天”时,则计算结果为 15

将日期设置为特定单位的开始时间

  • 接收输入值类型:日期
  • 参数
    • 时间单位。
  • 输出值类型:日期
  • 示例:输入值为 2024-7-15 14:26:30,单位为“天”时。则计算结果为 2024-7-15 00:00:00

将日期设置为特定单位的结束时间

  • 接收输入值类型:日期
  • 参数
    • 时间单位。
  • 输出值类型:日期
  • 示例:输入值为 2024-7-15 14:26:30,单位为“天”时。则计算结果为 2024-7-15 23:59:59

判断闰年

  • 接收输入值类型:日期
  • 参数
    • 无参数
  • 输出值类型:布尔
  • 示例:输入值为 2024-7-15 14:26:30,则计算结果为 true

格式化为字符串

  • 接收输入值类型:日期
  • 参数
  • 输出值类型:字符串
  • 示例:输入值为 2024-7-15 14:26:30,格式为 the time is YYYY/MM/DD HH:mm:ss,则计算结果为 the time is 2024/07/15 14:26:30

转换单位

  • 接收输入值类型:数值
  • 参数
    • 转换前的时间单位。
    • 转换后的时间单位。
    • 取整操作,可选保留小数,四舍五入,向上取整和向下取整。
  • 输出值类型:数值
  • 示例:输入值为 2,转换前的单位为“周”,转换后的单位为“天”,不保留小数时,则计算结果为 14

示例

日期计算节点_示例

假设有促销活动,我们希望每个商品创建的时候能在商品的字段上加上一个促销活动的结束时间,这个结束时间是在商品创建时间的下一周的最后一天的晚上 23:59:59,于是我们可以创建两个时间函数,并让它们以管道的方式运行:

  • 计算得到下个星期的时间
  • 将得到的结果重置为所在星期的最后一天 23:59:59

这样就得到我们期望的时间值,并传入下一个节点,例如数据表修改节点,将促销活动的结束时间加入到数据表中。