time元素的datetime属性必须为严格合规的ISO 8601字符串,如“2026-04-24”或“2026-04-24T13:07:00+08:00”,否则语义失效;非标准格式(如含空格、斜杠、缺前导零、无时区)将被忽略,结构化数据工具无法提取。

time 元素的 datetime 属性必须是严格合规的 ISO 8601 字符串,否则它在语义上就等于没写。
datetime 属性值必须符合 ISO 8601,不能“看起来像”
浏览器和搜索引擎只认标准格式,不校验、不修复、不宽容。写成 "2026/04/24"、"2026-4-24"、"2026-04-24 13:07" 或 "2026年4月24日" 都会被直接忽略——DevTools 里能看到属性存在,但 document.querySelector('time').dateTime 返回空字符串或 null,结构化数据工具(如 Google Rich Results Test)也提取不到时间字段。
合法格式只有这几类:
-
"2026-04-24"(纯日期,年月日必须补零) -
"2026-04-24T13:07:00"(带 T 分隔符,但隐含本地时区,行为不可靠) -
"2026-04-24T13:07:00+08:00"(显式时区偏移,推荐) -
"2026-04-24T05:07:00Z"(UTC 时间,适合跨时区系统)
T 是字面量,不能换成空格;+08:00 不能简写为 +8 或 GMT+8;年月日、时分秒的前导零缺一不可。
立即学习“前端免费学习笔记(深入)”;
服务端生成 datetime 值时,优先用原生 ISO 输出
Python 的 datetime.isoformat() 默认输出带 +00:00(如果对象是 UTC),Django 模板的 {{ obj.updated_at|date:"c" }} 也直接输出合规字符串;Node.js 的 new Date().toISOString() 返回带 Z 的 UTC 字符串,安全但需注意是否要转成本地偏移。
避免手动拼接:date.getFullYear() + '-' + (date.getMonth()+1) 容易漏补零、错算月份、忽略时区。若需本地偏移,用 Intl.DateTimeFormat 或 date-fns/formatISO(配 { format: "extended" })更稳。
将调研报告、方案对比、数据分析、需求梳理、会议纪要、设计说明、代码评审、学习笔记等任务产物输出为可在浏览器直接打开的单文件 HTML,替代 Markdown 作为最终交付物。Markdown 在信息密度、视觉清晰度和可分享性上已跟不上 AI 产物的丰富度,HTML 能同时承载排版、表格、SVG 等。
常见错误:
- 后端模板中直接插
{{ obj.updated_at|date:"Y-m-d H:i:s" }}(PHP/Laravel 等),空格分隔 → 不合法 - 前端用
toLocaleDateString("zh-CN")结果赋给datetime→ 中文或斜杠分隔 → 语义失效 - 数据库查出
DATETIME类型字段(如 MySQL 的"2026-04-24 13:07:00")直接塞进datetime→ 缺 T 和时区 → 被忽略
动态更新时间(如“2分钟前”)必须保留隐藏的合规 datetime
人类可读文案可以写 "2分钟前",但机器需要确定的时间点。不能只靠 JS 渲染后才写 datetime,首屏 HTML 必须包含静态、合规的值。
推荐写法:
<time datetime="2026-04-24T13:05:00+08:00" aria-hidden="true"></time> <span aria-live="polite">2分钟前</span>
这样屏幕阅读器和搜索引擎能读到绝对时间,前端 JS 可以基于那个值做相对计算。别用 aria-label 替代 datetime——它不参与结构化数据提取。
没写 datetime 属性的 time 标签,和 span 没区别
<time>2026年4月24日</time> 这种写法完全无效。没有 datetime,这个标签对辅助技术、SEO、RSS 解析器都不可见。它不会报错,但也不会起任何语义作用。
真正关键的不是标签名,而是 datetime 属性本身。其他属性如 class、id 可加,但 data-* 或 aria-* 无法替代它的功能。如果你不确定要不要用 time,先问自己:这个时间点是否需要被机器无歧义地识别?如果是,就必须有合规的 datetime 值。
最容易被忽略的是时区声明的必要性——哪怕你确信所有用户都在东八区,不写 +08:00 也会让解析结果依赖 UA 实现,不同浏览器可能当成 UTC 或本地时间,导致排序、聚合、缓存等逻辑出错。


















