datetime属性必须为严格合规的iso 8601字符串,仅日期、日期时间、utc时间、仅时间、持续时间五类格式有效,且须后端直出或用toisostring()生成,禁止js动态设置或手拼字符串。

datetime 属性必须是严格合规的 ISO 8601 字符串,否则浏览器、爬虫、屏幕阅读器一律忽略——不是“解析不准”,而是直接返回 null 或空字符串。
datetime 值必须是字面量字符串,不能靠 JS 动态插入
Google Search Console、Rich Results Test 等工具只解析 HTML 初始源码。JS 后续用 element.setAttribute('datetime', ...) 补上,等于白写。
- 后端模板中必须直接输出,比如 Django 的
{{ post.published_at|date:"c" }}、Python 的dt.isoformat() - 前端若需动态生成,优先用
new Date().toISOString()(返回带Z的 UTC 字符串),再根据需要转本地偏移 - 绝对不要用
toLocaleDateString()或手拼year + '-' + month—— 漏补零、月份错位、时区丢失全在这儿
合法格式只有五类,错一个字符就失效
所有值必须满足:年月日补零、T 大写、时区偏移为 ±HH:MM、无空格无中文无斜杠。
将调研报告、方案对比、数据分析、需求梳理、会议纪要、设计说明、代码评审、学习笔记等任务产物输出为可在浏览器直接打开的单文件 HTML,替代 Markdown 作为最终交付物。Markdown 在信息密度、视觉清晰度和可分享性上已跟不上 AI 产物的丰富度,HTML 能同时承载排版、表格、SVG 等。
- 仅日期:
"2026-07-24"(✅);"2026/07/24"、"2026-7-24"(❌) - 日期+时间(推荐带时区):
"2026-07-24T14:30:00+08:00"(✅);"2026-07-24 14:30:00"(缺T,❌) - UTC 时间:
"2026-07-24T06:30:00Z"(✅);"2026-07-24T06:30:00+00:00"(等效但不推荐,Z更简洁) - 仅时间(需上下文已知日期):
"09:00"或"09:00:00"(✅);单独用于文章发布时间会丢失语义(❌) - 持续时间:
"PT1H23M45S"(✅);"1小时23分"、"1:23:45"(❌)
显示文本和 datetime 值必须解耦
人看的可以是“刚刚”“下周二”“发布会当天”,机器读的必须是固定、无歧义的时间戳。
- 允许:
<time datetime="2026-07-24T10:00:00+08:00">刚刚</time> - 禁止:把
datetime改成"2026-07-24T10:00:05+08:00"来模拟“实时更新”——原始时间点就丢了 - 更危险的是在 JS 中同步修改文本和
datetime,比如把“还剩 3 天”改成“还剩 2 天”同时改属性值——结构化数据提取器会认为这是两个不同事件
验证是否生效的三步法
别猜,直接查 DOM 和工具反馈。
- DevTools → Elements 面板确认
datetime属性存在,且值是纯字符串(无空格、无引号嵌套、无 JS 变量) - Console 执行
document.querySelector('time').dateTime,返回非空字符串才算有效 - 粘贴 HTML 到 Google Rich Results Test,看是否识别出
datePublished或dateModified
最常被忽略的一点:多个 <time></time> 标签共存时,如果其中任意一个 datetime 值非法或重复,某些结构化数据解析器会整体降低该页面时间字段的信任权重——不是报错,而是静默降权。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










