English | 简体中文
一个专业的会议演讲计时器,功能完善、界面美观,适合各种会议场景。纯HTML/JS,零依赖,双击即用!
访问在线演示:TimeKeeper Demo
注:在线版本数据仅保存在浏览器本地
-
下载项目
git clone https://github.com/guoqunabc/timekeeper.git
-
打开文件
- 双击
index.html文件
- 双击
-
开始使用
- 填写演讲者姓名和时间
- 点击"开始"按钮
- 就这么简单! 🎉
- 输入演讲者姓名和时间
- 点击"开始"按钮或按空格键启动
- 大屏幕数字显示,适合投屏
- 智能提醒系统:
- 🟡 最后 1 分钟:数字变黄色并闪烁,温和提醒
- 🔴 超时提醒:数字变红色并动态闪烁,强力警示(核心功能)
- 预设多个演讲者的议程
- 自动顺序执行,无需手动切换
- 支持拖拽排序、即时编辑
- 完成一个自动进入下一个
- 自动保存每次演讲记录
- 显示姓名、时长、超时情况
- 支持导出为 CSV(Excel)或 JSON
- 本地持久化,刷新不丢失
- 一键切换中英文界面
- 自动保存语言偏好
- 覆盖所有界面文本
- 无需安装任何软件
- 无需配置服务器
- 双击 HTML 文件直接使用
- 所有数据本地存储
这是最简单的使用方式,适合临时会议或单人演讲:
步骤:
- 在顶部输入框填写演讲者姓名(可选)
- 设置分钟和秒数
- 点击"开始"按钮 或 按 空格键
- 计时结束后点击"停止"按钮
- 确认停止,记录自动保存
提示:
- ⌨️ 空格键:快速开始/停止
- ⌨️ ESC 键:重置计时器(未开始时)
- 🟡 最后 1 分钟:数字变黄色并闪烁
- 🔴 超时后:数字变红色并动态闪烁
- 📊 所有记录显示在底部区域
适合有多个演讲者的正式会议,提前配置好议程,会议时自动执行:
- 点击右上角 ⚙️ 配置按钮
- 在弹出的面板中点击 "+ 添加演讲者"
- 填写每个演讲者的信息:
- 姓名(必填)
- 分钟数
- 秒数
- 可以拖拽 ⋮⋮ 图标调整顺序
- 点击 "保存并应用"
演讲者1 计时 → 点击停止 → 自动加载演讲者2 → 点击开始 → ...
✅ 无需手动切换,自动进入下一位 ✅ 支持在主界面实时编辑当前演讲者的姓名和时间 ✅ 编辑会自动同步保存到议程配置
- ➕ 添加演讲者:点击底部"添加"按钮
- ✏️ 编辑信息:直接在输入框中修改
- 🔄 拖拽排序:按住左侧图标拖动
- 🗑️ 删除演讲者:点击右侧 × 按钮
- 📥 导入议程:支持 CSV 或 JSON 文件
- 📤 导出议程:生成备份文件
- 🧹 清空议程:删除所有演讲者
- 打开配置面板(点击 ⚙️)
- 点击底部"导出"按钮
- 选择格式:
- JSON:完整备份,可再次导入
- CSV:可用 Excel 打开编辑
方式 1:点击导入按钮
- 打开配置面板
- 点击"导入"按钮
- 选择 CSV 或 JSON 文件
方式 2:拖拽导入(更快)
- 打开配置面板
- 直接拖拽文件到面板区域
- 自动识别并导入
CSV 文件格式示例(可用 Excel 创建):
姓名,分钟,秒数
张三,5,0
李四,10,30
王五,3,0注意: 第一行是表头,从第二行开始是数据
JSON 文件格式示例:
{
"speakers": [
{ "name": "张三", "minutes": 5, "seconds": 0 },
{ "name": "李四", "minutes": 10, "seconds": 30 },
{ "name": "王五", "minutes": 3, "seconds": 0 }
],
"exportTime": "2026/1/27 20:00:00"
}所有演讲记录自动显示在页面底部,包含:
- 👤 演讲者姓名
- ⏱️ 总时长 (MM:SS)
- ⏰ 超时时长(如果超时)
- 📅 记录时间
- 删除单条记录:将鼠标悬停在记录上,点击右侧 × 按钮
- 清空所有记录:点击底部"清空"按钮
- 导出记录:点击底部"导出"按钮,选择格式
- ✅ 所有记录自动保存到浏览器本地存储
- ✅ 刷新页面不会丢失数据
- ✅ 计时过程中关闭页面,12 小时内重新打开会自动恢复
- ✅ 记录永久保存,除非手动清空
点击右上角配置按钮下方的 语言切换按钮:
- 中文模式显示:"中"
- 英文模式显示:"EN"
- 点击即可切换
- 语言偏好自动保存
| 按键 | 功能 | 说明 |
|---|---|---|
| 空格 | 开始/停止计时 | 最常用的操作 |
| ESC | 重置计时器 | 仅在未开始时有效 |
| Enter | 确认 | 在确认对话框中使用 |
计时器/
├── 📄 index.html # 主文件(双击打开)
├── 📄 README.md # 中文说明文档
├── 📄 README_EN.md # 英文说明文档
├── ⚙️ 会议议程配置.js # 配置文件(可选)
├── 📁 src/
│ └── Timer.js # 核心代码
├── 📁 fonts/ # 本地字体文件
│ ├── Arial.ttf
│ └── DINPro-Regular.otf
├── 📁 tests/ # 测试文件
│ ├── 兼容性测试.html
│ ├── 自动化测试.html
│ ├── 运行测试.sh
│ └── 测试说明.md
├── 📄 配置示例1.csv # CSV 导入示例
└── 📄 配置示例2.json # JSON 导入示例
- 第一次使用:先用基础模式熟悉操作
- 临时会议:直接输入时间,点击开始
- 记录导出:会议结束后导出 CSV 用于存档
- 正式会议:提前用配置面板设置好议程
- 备份议程:导出 JSON 文件作为备份
- 批量配置:用 Excel 编辑 CSV 后导入
- 大屏投屏:按 F11 进入全屏模式效果最佳
- 自定义配置:直接编辑
会议议程配置.js文件
- 提前 10 分钟配置好议程
- 投屏到大屏幕
- 每位演讲者开始时点击"开始"
- 关注颜色变化提醒演讲者注意时间
- 会议结束后导出记录
A: 打开配置面板 → 点击"清空" → 点击"保存并应用"
A: 12 小时内重新打开页面,会自动恢复到中断时的状态(包括当前时间和演讲者信息)
A: 配置面板 → 导出 → 选择 JSON 格式 → 保存文件。下次可以直接导入这个文件
A: 所有现代浏览器(Chrome、Edge、Firefox、Safari 等),推荐使用 Chrome 以获得最佳体验
A: 文件已包含 UTF-8 BOM 标记,Excel 应能正常打开。如仍有问题,可用记事本另存为 ANSI 编码
A: 所有数据(记录、议程、设置)都存储在浏览器的 localStorage 中,仅保存在本地,不会上传到任何服务器
A: 可以,每个浏览器标签页独立运行,互不影响
A: 清空记录(底部"清空"按钮)+ 清空议程(配置面板"清空"按钮)
cd tests
./运行测试.sh- 打开
tests/兼容性测试.html- 检测浏览器兼容性 - 打开
tests/自动化测试.html- 运行功能测试
详细说明请查看 测试说明.md
- 🐛 修复白天模式下署名看不清的问题
- 🌐 修复记录列表语言不同步问题,支持动态切换
- 🐛 修复停止计时时无法保存记录的问题
- 🔒 修复潜在的安全隐患(XSS)
- 🐛 修复确认弹窗打开时空格键仍能触发计时的 Bug
- ✨ 新增中英文界面切换功能
- 🌐 支持语言偏好持久化
- 🎨 优化按钮布局和交互
- ✨ 可视化议程配置面板
- ✨ 支持 CSV/JSON 导入导出
- ✨ 拖拽排序演讲者
- ✨ 状态自动恢复(12 小时)
- ✨ 实时编辑主界面演讲者信息
- ⏰ 精确计时与智能警告
- 📋 演讲记录管理
- 🎨 专业深色界面
- 📱 响应式设计
欢迎提交 Issue 和 Pull Request!
- Fork 本项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开 Pull Request
MIT License - 自由使用、修改和分发
- GitHub Issues: 提交问题
如果这个项目对你有帮助,请给个 Star ⭐️
祝使用愉快! 🎉