Skip to content

时间

时间计算

时间运算符是#,完整的用法是:

#(..)years(..)months(..)weeks(..)days(..)hours(..)minutes(..)seconds(..)milliseconds


支持简写时间单位, 完整的简写形式:

#(..)y(..)m(..)w(..)d(..)h(..)mm(..)s(..)ms


单位 完整写法 简写 其他形式
years y year
months m month
weeks w week
days d day
小时 hours h hour
分钟 minutes mm minute
seconds s second
毫秒 milliseconds ms millisecond


m表示月份, mm 表示分钟


对于时分秒,还支持另一种常见的写法 #HH:mm:ss:

  • #HH:mm:ss

    表示HH小时mm分钟ss秒, 等价于 #(h)hours(m)minutes(s)seconds

  • #HH:mm

    表示HH小时mm分钟, 等价于 #(h)hours(m)minutes

#HH:mm:ss 不支持括号, 所以也不支持括号内的表达式


表达式是可以选的, 不用写完整

  • #1year
  • #2m3weeks
  • #2w1d3s
  • #(1+2)d5h3ms
  • #(min(10, 9+1.5) - 1)days3ms

上面的写法很灵活, 都是合法的

当括号内的表达式是数字时,括号可以省略。

比如 #1d 表示1天, #-1h 表示-1小时, #1.5mm 表示1.5分钟, #1s 表示1秒。

括号内的表达式不是数字时,括号不可以省略

  • 支持
    #(1+2)d 等价于 #3d
    #(1.5+2.5)mm 等价于 #4mm
    #(max(3, 2, 1))w 等价于 #3w

  • 不支持
    #1+2d --> ERROR, 需要写成 #(1+2)d

支持加减法

#时间 ± #时间 = #时间

  • #1y2m3d + #3w5h = #1y2m3w3d5h

  • #10:10:10 - #10:10 = #0:0:10


示例:

image20250118150055.png

#1y2m3d     // 1年2月3天

#2w3d5h     // 2周3天5小时

#1d2h3mm    // 1天2小时3分钟

#1d2h3s     // 1天2小时3秒

#1d2h3ms    // 1天2小时3毫秒

#10:10:10    // 10小时10分钟10秒

#10:10       // 10小时10分钟

// 时间加法
#1y2m3d + #3w5h = #1y2m3w3d5h

// 时间减法
#1y2m3d - #3w5h = #1y2m3w3d5h


// 2小时10分钟10秒加上1小时20分钟20秒
// 等于3小时30分钟30秒
#2:10:10 + #1:20:20 = #3:30:30  

// 10小时10分钟10秒减去10小时10分钟
// 等于10秒
#10:10:10 - #10:10 = #0:0:10  

时间转换

  • #(时间) : 默认显示格式:xx年xx月 + xx 毫秒

年和月不能转化为毫秒,因为它们是不可精确计算的。

转换符号 > # 可以转换不同输出格式:

  • #(时间) > # : 将时间转化为格式:xx年xx月 + xx 天 xx 小时 xx 分钟 xx 秒 xx 毫秒
  • #(时间) > #w : 将时间转化为格式:xx年xx月 + xx 周
  • #(时间) > #d : 将时间转化为格式:xx年xx月 + xx 天
  • #(时间) > #h : 将时间转化为格式:xx年xx月 + xx 小时
  • #(时间) > #m : 将时间转化为格式:xx年xx月 + xx 分钟
  • #(时间) > #s : 将时间转化为格式:xx年xx月 + xx 秒
  • #(时间) > #ms : 不支持,因为这是默认显示格式

image20250118143813.png

image20250118143657.png

#1d2h2mm             // 输出: 93780000ms
#1d2h2mm > #         // 输出: 1天 2小时 2分钟 0秒
#1d2h2mm > #w        // 输出: 0.15周
#1d2h2mm > #d        // 输出: 1.08天
#1d2h2mm > #h        // 输出: 26.03小时
#1d2h2mm > #m        // 输出: 1562.00分钟
#1d2h2mm > #s        // 输出: 93720.00秒


#1y1d2h2mm          // 输出: 1年+93780000ms
#1y1d2h2mm > #      // 输出: 1年+1天 2小时 2分钟 0秒

#1y2m1d2h2mm        // 输出: 1年2月+93780000ms
#1y2m1d2h2mm > #    // 输出: 1年2月+1天 2小时 2分钟 0秒
#1y2m1d2h2mm > #d   // 输出: 1年2月+1.08天