直接答案:粘贴 HTML 或可见文本,工具在浏览器本地列出所有日期字符串,并按日期前的标签分成三类:发布(发布时间 / 发布日期 / published)、更新(更新于 / 最后更新 / updated)、无标签。它还会显示每条的上下文,方便判断这个日期到底在标什么。不联网、不上传。
第 30 期发现:41 个缓存文章页里 32 个有日期字符串,但 0 个写“更新于”——日期看得见,标签却在“发布”。这个工具把那套判断做成可复核的本地检查,避免把发布日期误读成更新时间。
有日期只说明文本里有一个日期。
标签是“发布”还是“更新”,决定它能不能当修订证据。
不联网:只分析粘贴的 HTML。
工具:粘贴 → 分类
默认示例得到 3 个日期串:1 个发布、1 个更新、1 个无标签。第三个日期前面紧挨着“最后更新 2026-11-02”,但工具会先把前一个日期截掉,再看标签——否则它会误判成“更新”。
三类标签
| 类别 | 标签 | 用途 |
|---|---|---|
| 发布 | 发布时间 / 发布日期 / 发布于 / 发布 / 日期 / 时间 / published / posted | 首次发布,不能当修订时间 |
| 更新 | 更新于 / 最后更新 / 最近更新 / 更新时间 / updated / last updated | 唯一能被叫做“更新”的标签 |
| 无标签 | 日期前 24 字符内没有标签 | 可能来自列表、侧栏或正文,需人工看上下文 |
四种常见情况
- 只有发布日期。 文章头部写“发布时间:2026-10-30”——说明发布,不说明最近改过。
- 只有裸日期。 列表项或正文里出现 2026-10-30,没有标签;可能只是列表排序依据。
- 有更新标签。 “最后更新 2026-11-02”——这是主动声明修订,但仍需版本记录佐证。
- 发布 + 更新并存。 两个日期都在时,要分别记录,不要只留一个。
边界
- 不抓站:只解析粘贴内容,不知道线上状态码。
- 不判断真伪:标签与日期都可能写错,工具只做文本分类。
- 不执行 JS:脚本注入的日期看不到;需要先取渲染后的 HTML。
- 只认数字日期:“十月三十日”等写法不识别。
- 窗口 24 字符:标签隔得远会算作无标签;前一个日期会被截掉,避免串味。
测试与复算
逻辑在 js/visible-date-check.js(无依赖、无网络);scripts/test_visible_date_check.js 覆盖 43 条断言:脚本/样式/注释剥离、四种日期写法、中英文发布与更新标签、标签距离、前一个日期截断、三类计数与空输入。运行:
node scripts/test_visible_date_check.js
配套:文章页可见日期 pilot(41 页:32 有日期、0 更新标签)、文章页更新日期扩样(8 个 dateModified)、新鲜度信号检查器(版权 / lastmod / 结构化日期)、日期快照对比器(两次 HTML 的新增/删除/改类)。
数据来源与口径
- 可见日期口径:第 30 期《文章页可见日期扩样》的规则与 18 项 Python 单测。
- 标签分类:发布、更新、无标签三类;更新标签仅认“更新于 / 最后更新 / updated”等。
- 日期格式:20xx 开头的数字日期;不解析相对时间。