应使用构建时注入的 Git 提交时间作为 标签 datetime 属性值,严格遵循 ISO 8601 格式(如 2024-05-21 或 2024-05-21T14:30:00+08:00),确保语义准确、机器可读;标签内文本可自定义,但须与 datetime 语义对齐。

网页最后更新时间不能靠人工填写,<time></time> 标签配合 datetime 属性是语义化、可机器读取的正确方式,但直接写死值毫无意义——关键在于如何让它自动反映真实修改时间。
用 <time></time> 标签时,datetime 属性必须严格符合 ISO 8601 格式
浏览器不校验格式,但搜索引擎、屏幕阅读器和自动化工具依赖它。错一位数字或漏掉时区就可能被解析为无效日期。
-
datetime值必须是YYYY-MM-DD(日期)或YYYY-MM-DDTHH:MM:SS±HH:MM(带时区的完整时间),例如2024-05-21或2024-05-21T14:30:00+08:00 - 只写
2024/05/21或21-05-2024是无效的,<time datetime="2024/05/21">2024年5月21日</time>中的datetime属性会被忽略 - 如果页面只关心日期(无具体时刻),用
YYYY-MM-DD即可;若需精确到秒且部署在多时区环境,务必带上时区偏移
静态站点无法运行 JS 获取“文件修改时间”,得靠构建时注入
前端 JavaScript 的 document.lastModified 返回的是 HTML 文件加载时的服务器响应头 Last-Modified,而该字段常被 CDN 缓存覆盖或根本未设置,不可靠。
把任意文章或文档内容转换成精美的全屏翻页 HTML 演示文件(幻灯片风格)。当用户发来一篇文章、文档链接、Markdown 内容、或粘贴的文本,并且希望生成演示用的 HTML 时触发。支持任意内容来源:iWiki 链接、KM 链接、本地文件路径、直接粘贴的文本。生成的 HTML 文件保存到本地工作区,并通过企微直接发送给用户。触发词示例:帮我把这篇文章做成PPT、转成演示文档、生成HTML幻灯片、做个演示、转成可以演示的格式、article to deck、make a slide。
- GitHub Pages、Vercel、Netlify 等平台在构建阶段可读取 Git 提交历史,推荐用脚本提取最新 commit 的
author date注入到 HTML 模板中 - Jekyll 用户可用
{{ page.date | date_to_xmlschema }}(前提是页面 front matter 里有date),但更稳妥的是用{{ git_commit_date | date_to_xmlschema }}插件 - VuePress / VitePress 默认提供
$themeConfig.lastUpdated和page.lastUpdated,对应 Git 提交时间,渲染时直接绑定到<time datetime="{{ page.lastUpdated }}">{{ page.lastUpdated | formatDate }}</time>
<time></time> 标签内容本身可以是任意可读文本,与 datetime 属性解耦
标签内文字只是给人看的,datetime 才是给机器用的。两者不必一致,但应语义对齐。
- 你可以写
<time datetime="2024-05-21">5 天前</time>,辅助技术能正确识别出这是 5 月 21 日,而用户看到的是相对时间 - 也可以写
<time datetime="2024-05-21">2024 年 05 月 21 日</time>,保持中文化显示但保留标准格式供解析 - 避免把动态 JS 渲染逻辑塞进
<time></time>内容里,比如<time datetime="..."><span id="relative-time"></span></time>—— 这会让语义丢失,且 SEO 和无障碍支持变差
真正难的不是写对 <time datetime=""></time>,而是确保那个字符串背后的时间戳确实来自源文件最后一次有意义的变更。Git 提交时间最接近事实,但如果你的内容由 CMS 后台管理,就得对接其 API 获取字段更新时间——这已经超出 HTML 标签能力范围了。

















