用 UTC 条件实现时间窗口通知
只在“能处理”的时间收到提醒:工作时段、值班窗口、周末维护。现在,Echobell 的系统时间变量(UTC)让这一切变得简单。你可以在频道「条件」中直接写出诸如“工作日 09:00–17:00”“每月 1 日整点”这样的表达式。
你将获得:
- 全局可用(条件与模板)的 UTC 变量清单
- 常用时间窗口的可复制示例
- 如何把时间与内容规则(发件人、关键字、严重级别)组合
- 附:在模板里输出时间信息
新手可先阅读:条件 · 模板。触发来源:Webhook · 电子邮件触发器。
系统时间(UTC)变量
这些只读变量始终可用,且以 UTC 计算:
timezone(恒为 "UTC")、now/iso、epochMs、epochSecondsyear、month(1–12)、monthNamedayOfMonth(1–31)dayOfWeek(0–6,周日 = 0)、dayOfWeekNamehour(0–23)、minute(0–59)、second(0–59)date(YYYY‑MM‑DD)、time(HH:mm:ss)
在条件里直接使用(无需 {{ }});在模板里用 {{ }} 包裹引用。
直接可用的示例
工作日的工作时间(09:00–17:00)
hour >= 9 && hour < 17 && dayOfWeek >= 1 && dayOfWeek <= 5仅周末
dayOfWeek == 0 || dayOfWeek == 6非工作时段(夜间 + 周末)
(hour < 9 || hour >= 17) || dayOfWeek == 0 || dayOfWeek == 6维护窗口(每周六 01:00–03:00)
dayOfWeek == 6 && hour >= 1 && hour < 3每月 1 日的整点
dayOfMonth == 1 && minute == 0季度末(3/6/9/12 月)工作时间
(month == 3 || month == 6 || month == 9 || month == 12) && hour >= 9 && hour < 17 && dayOfWeek >= 1 && dayOfWeek <= 5与内容和严重级别组合
与现有变量组合更强大:
- 仅在夜间/周末对高严重级别升级:
((hour < 9 || hour >= 17) || dayOfWeek == 0 || dayOfWeek == 6) && (severity == "high" || severity == "critical") - 仅生产环境、工作日:
environment == "production" && dayOfWeek >= 1 && dayOfWeek <= 5
提示:条件是普通表达式,不需要 {{ }}。运算符一览见:条件 → 支持的运算符。
在模板里显示时间(附)
同样的变量在模板中也适用(使用 {{ }}):
发送时间 {{date}} {{time}} {{timezone}}
今天是 {{dayOfWeekName}},{{monthName}} {{dayOfMonth}},{{year}}
Epoch:{{epochSeconds}}也可以与 Webhook 或 电子邮件触发器 传入的数据混用:
{{service}} {{status}} 于 {{time}}({{timezone}})最佳实践
- 关于 UTC:统一用 UTC 可确保跨设备一致、可预测。
- 先用时间降噪,再用内容细化:分步优化规则。
- 记录意图:在频道备注写明 “工作日 09–17 UTC;非工作时段仅 high/critical”。
下一步
有更好的时间窗口写法?欢迎分享你在 Echobell 中利用条件实现“安静、高效通知”的经验。
作者:
Nooc
发布于
2025年11月6日