pubdate 属性已彻底废弃,现代 HTML 中不应再使用它;它曾是 HTML5 草案中用于标记发布日期的布尔属性,但被 W3C 和 WHATWG 明确弃用,所有主流浏览器均不解析,DOM 中不可查,HTML 标准中已无定义。

pubdate 属性已彻底废弃,现代 HTML 中不应再使用它。浏览器不支持、规范已移除、阅读器基本忽略——写上等于白写。
为什么 pubdate 不能用了
它曾是 HTML5 草案里的一个布尔属性,用来标记某个 <time> 是文章或页面的发布日期。但早在 HTML5 正式标准定稿前就被删掉了,W3C 和 WHATWG 两个主流标准组织都明确弃用。目前所有主流浏览器(Chrome/Firefox/Safari/Edge)均不解析 pubdate,DOM 中也查不到该属性值,document.querySelector('time[pubdate]') 永远返回 null。
- HTML Living Standard(WHATWG)中已无
pubdate的任何定义 - W3C HTML5.3 规范里明确标注为“obsolete”
- 即使你手写
<time pubdate datetime="2026-04-05">4月5日</time>,渲染和语义上都和没写一样
datetime 是唯一可靠且必须用的属性
datetime 才是 <time> 标签真正起作用的属性,它提供机器可读的时间戳,对 SEO、屏幕阅读器、聚合工具、日历导入等都有效。内容可以自由展示,但 datetime 必须严格按 ISO 8601 格式写。
- 完整时间:
datetime="2026-04-10T19:00+08:00"(推荐带时区) - 仅日期:
datetime="2026-04-05" - 仅年份:
datetime="2026"(合法,用于出生年、版权年等) - 仅年月:
datetime="2026-04" - 持续时间:
datetime="PT90M"(表示 90 分钟) - 错误写法:
datetime="2026/04/05"、datetime="4月5日"、datetime="2026-04-05 19:00"(缺 T 或时区,部分工具会解析失败)
如何替代 pubdate 的语义意图
你想表达“这是本文发布时间”,靠 pubdate 已经行不通;正确做法是结合文档结构 + datetime + 微数据或 ARIA。
立即学习“前端免费学习笔记(深入)”;
- 把发布时间放在
<article>内第一个<time>,并确保其datetime值准确——多数 CMS 和阅读器会默认将它识别为发布日期 - 加
aria-label="发布于 2026年4月5日"提升辅助技术可访问性(注意:不要和datetime冲突) - 如需更强语义,用
itemprop="datePublished"(Schema.org 微数据),搜索引擎更认可 - 避免在
<footer>或非<article>上下文中强行塞一个<time>并幻想它被当发布日期
真正容易被忽略的点是:很多人以为只要写了 <time> 就自动获得时间语义,其实关键在 datetime 值是否合法、是否嵌套在合理语境中。空有标签而无有效 datetime,跟写个 <span> 没区别。



















