--- id: system-setting.msg-time-limit.howto title: 消息撤回与编辑时长上限 type: howto feature: system-setting scope: admin locale: zh aliases: - 消息撤回多久 - 撤回时长怎么设 - 编辑消息时间 - msg_rev_limit - msg_edit_limit - 超时不能撤回 - 怎么改撤回时间 prerequisites: - 需要系统管理员权限 - 部署环境变量 SYSTEM_SETTING 不为 disabled related_tools: [] related_pages: [] negative: - 超过设定时长后所有人都不能撤回 / 编辑该消息,系统管理员也不例外 - 留空(视作 0)= 不限制,不是「禁止撤回」 - 时长以分钟为单位整数,不支持小时 / 秒级粒度 last_verified: v1.7.90 --- # 消息撤回与编辑时长上限 ## 入口 桌面端:左上角头像 →「系统设置」→「系统设置」标签 →「消息相关」→「撤回消息限制」/「修改消息限制」。 涉及字段: - `msg_rev_limit` — 撤回时长上限(分钟) - `msg_edit_limit` — 编辑时长上限(分钟) ## 单位与默认值 - 单位:**分钟**,整数 - 默认:留空(保存为空字符串),等价于「不限制」 - 提示文案:占位符显示「默认不限制」 ## 0 / 留空的含义 后端 `validateMsgLimit` 用 `intval(...)` 取值,当 `limitNum <= 0` 时直接 `return` 不做限制。所以: - 留空、写 `0`、写负数 → 都按"不限制"处理(任何时候都能撤回 / 编辑) - 写正整数 `N` → 消息发出 N 分钟后不可撤回 / 编辑 ## 超时后能不能改 不能。超出时长后服务端会抛 `已超过 X 分钟,此消息不可撤回 / 修改` 错误,前端按钮也会变灰或弹错。系统管理员同样受限,没有"管理员强撤"的旁路。 ## 操作步骤 1. 进入「系统设置」→「系统设置」→「消息相关」 2. 在「撤回消息限制」「修改消息限制」输入框填分钟数(如 `5`)或留空 3. 「提交」保存,立即生效 ## 不支持 - 不能按会话类型(私聊 / 群聊)分别设阈值 - 不能给特定角色(如管理员)开"无限制"特权 - 不支持小时 / 秒级单位,最小粒度是 1 分钟