直接答案:粘贴同一页面的两次 HTML 快照,工具在浏览器本地对比日期字符串:新增了哪些日期、删除了哪些、哪些日期从“发布”变成了“更新”、哪些没变。它按日期文本比对,不做 DOM diff,也不判断哪次快照是真的。不联网、不上传。
第 24、30 期都强调“两次观察要可比”。这个工具把那件事做成最小步骤:同一 URL、两份 HTML、一张差异表。适合验收前后、改版前后、或复测时确认日期字段到底动没动。
新增、删除、标签变化分别记。
同一日期换了标签,也是变化。
只分析粘贴的两段 HTML。
工具:两份快照 → 差异
默认示例得到:新增 2 个日期(2026-11-02 出现两次)、删除 1 个(2026-11-01)、不变 1 个(2026-10-30)。这里没有“改类”,因为 2026-11-01 是删除而不是标签变化。把 B 的“最后更新”改成“发布时间”,同一日期会进入“改类”。
差异怎么算
| 类别 | 判定 | 说明 |
|---|---|---|
| 新增 | B 中某日期文本出现次数多于 A | 按文本计数,重复日期逐个计 |
| 删除 | A 中某日期文本出现次数多于 B | 日期消失或次数减少 |
| 改类 | 同一日期在 A/B 的标签类别不同 | 发布 ↔ 更新 ↔ 无标签 |
| 不变 | 同文本、同类别 | 次数取两边较小值 |
标签类别沿用可见日期检查器:更新(更新于/最后更新/updated)、发布(发布时间/发布日期/published 等)、无标签。分类前会截掉紧邻的前一个日期,避免标签串味。
三种常见用途
- 发布 → 更新。 改版时把“发布时间”改成“最后更新”,同一日期会出现在“改类”,而不是“新增”。
- 日期被替换。 2026-11-01 换成 2026-11-02,会同时出现 1 个删除与 1 个新增。
- 列表增删。 新闻列表多一条就多一个日期串;这不等同于正文更新,需要结合上下文。
边界
- 不是 DOM diff:只比日期文本与标签类别,不比较正文。
- 不判断哪份新:A/B 由你标记,工具不知道抓取时间。
- 不执行 JS:脚本注入的日期需要先取渲染后的 HTML。
- 只认数字日期:“十月三十日”等写法不识别。
- 重复日期按次数算:同一日期出现 3 次变 4 次会记 1 个新增。
测试与复算
逻辑在 js/date-snapshot-diff.js(无依赖、无网络);scripts/test_date_snapshot_diff.js 覆盖 40 条断言:三种标签、脚本剥离、前一个日期截断、新增/删除/改类/不变、重复日期计数、空快照与汇总。运行:
node scripts/test_date_snapshot_diff.js
配套:文章页可见日期 pilot(41 页:32 有日期、0 更新标签)、可见日期检查器(单份分类)、文章页更新日期扩样(8 个 dateModified)。
数据来源与口径
- 日期与标签口径:第 30 期《文章页可见日期扩样》与第 31 期检查器。
- 差异定义:按日期文本计数,标签类别变化单独记。
- 日期格式:20xx 开头的数字日期;不解析相对时间。