⏰
免费 Cron 表达式构建器
构建、验证和解释定时任务的 cron 表达式。实时通俗说明、未来 5 次运行预览和常用模式预设。
加载后可离线使用
分钟
(0-59)小时
(0-23)天
(1-31)月
(1-12)星期
(0-7)
(0-59)小时
(0-23)天
(1-31)月
(1-12)星期
(0-7)
自然语言描述
在09:00, 周一至周五.
常用模式
兼容标准 Unix cron、GitHub Actions、Kubernetes CronJob 及大多数调度系统。使用 * 表示"每",*/5 表示"每 5 个",1-5 表示范围,1,15 表示特定值。 也接受@hourly、@daily、@weekly、@monthly、@yearly,以及MON-FRI或JAN-DEC等名称。
常见用途
- 为 GitHub Actions 工作流构建 CronGitHub Actions 使用 cron 语法来进行定时工作流。在这里构建并验证你的时间表。
- 为 Kubernetes CronJob 构建 CronKubernetes CronJob 资源使用标准 cron 语法。以可视化方式构建并解释表达式。
- 为 Linux crontab 构建 Cron 条目自信地为传统 Unix cron (cron、crontab -e) 构建表达式。
- 安排数据库维护作业使用 cron 表达式自信地安排备份、清理或分析作业。
- 了解 Cron 表达式如何工作每次调整都会显示即时的纯英文解释和接下来 5 次运行的预览 — 学习 cron 的最佳方式。
工作原理
Cron 表达式生成器完全在你的浏览器中运行,使用 lib/cron.ts 中的手写解析器——没有外部库、没有服务器调用。它校验表达式,使用浏览器内置的 Intl.DateTimeFormat 和 Intl.ListFormat API 获取符合地区习惯的星期和月份名称,组装通俗易懂的描述,并通过带字段跳过逻辑的时间前推计算接下来的运行时间,而不是逐分钟暴力枚举。
- 1逐字段解析表达式解析器将表达式按空白拆分为五个(或六个)字段,并对每个字段识别逗号、范围(如 1-5)、步长写法(如 */15)以及 MON 或 JAN 这样的名称值。@daily 等 @宏会在解析开始前展开为对应的五字段形式。无效值或超出范围的数字会以类型化的错误键呈现,并映射到本地化的消息。
- 2组装易读的描述lib/cron.ts 中的 describeCron() 通过检查哪些字段是通配符、哪些是明确集合来构建英文(或本地化)句子。星期和月份名称通过使用当前语言的 Intl.DateTimeFormat 解析,列表项用 Intl.ListFormat 连接,使连接词(“和”、逗号或特定语言的形式)与用户语言一致。
- 3通过字段跳过计算下次运行时间nextRuns() 从当前时刻开始将 Date 对象向前推进,但会跳过无法匹配的整月、整天或整小时,而不是测试每一分钟。这意味着像 2 月 30 日这样不可能的计划会通过五年范围检查快速退出,而不是循环 260 万次。
- 4通过网址片段分享表达式你输入的任何表达式都会以 #expr= 写入页面网址片段(通过 window.history.replaceState 防抖 500 ms)。片段绝不会发送到服务器;页面加载时会从中恢复,因此分享或收藏网址即可还原完全相同的表达式,无需任何服务器状态。