一个 Hacker News 的讨论集中在 HTML `` 元素的使用率不高的问题上。用户表达了沮丧,因为它本身并没有提供有用的功能,例如自动生成相对时间戳(例如“4 天前”)或工具提示。
一些评论者提出了改进建议:无需 JavaScript 自动生成本地化的日期/时间格式,支持倒计时计时器,以及提供对时间显示的更精细控制。一位用户更喜欢绝对日期戳而不是相对日期戳,而另一位则提倡使用 `` 结合通过 `Intl.DateTimeFormat` 进行适当的本地化和 ISO 格式化,并指出这有利于测试和潜在的浏览器插件集成。总体情绪是 `` 元素*应该*做更多的事情来增强开发人员和用户双方的可访问性和可用性。
相关文章
原文
A common UI pattern is something like this:
Post published 4 hours ago
People do lots of stuff with that “4 hours ago.” They might make it a permalink:
Post published <a href="/posts/123456">4 hours ago</a>
Or they might give it a tooltip to show the exact datetime upon hover/focus:
Post published
<Tooltip content="December 14, 2025 at 11:30 AM PST">
4 hours ago
</Tooltip>
Note: I’m assuming some Tooltip component written in your favorite framework, e.g. React, Svelte, Vue, etc. There’s also the bleeding-edge popover="hint" and Interest Invokers API, which would give us a succinct way to do this in native HTML/CSS.
If you’re a pedant about HTML though (like me), then you might use the <time> element:
Post published
<time datetime="2025-12-14T19:30:00.000Z">
4 hours ago
</time>
This is great! We now have a semantic way to express the exact timestamp of a date. So browsers and screen readers should use this and give us a way to avoid those annoying manual tooltips and… oh wait, no. The <time> element does approximately nothing.
I did some research on this and couldn’t find any browser or assistive technology that actually makes use of the <time> element, besides, you know, rendering it. (Whew!) This is despite the fact that <time> is used on roughly 8% of pageloads per Chrome’s usage tracker.
So what does <time> actually do? As near as I can tell, it’s used by search engines to show date snippets in search results. However, I can’t find any guidelines from Google that specifically advocate for the <time> element, although there is a 2023 post from Search Engine Journal which quotes a Google Search liaison:
Google doesn’t depend on a single date factor because all factors can be prone to issues. That’s why our systems look at several factors to determine our best estimate of when a page was published or significantly updated.
In fact, the only Google documentation I found doesn’t mention <time> at all, and instead recommends using Schema.org’s datePublished and dateModified fields. (I.e., not even HTML.)
So there it is. <time> is a neat idea in theory, but in practice it feels like an unfulfilled promise of semantic HTML. A 2010 CSS Tricks article has a great quote about this from Bruce Lawson (no relation):
The uses of unambiguous dates in web pages aren’t hard to imagine. A browser could offer to add events to a user’s calendar. A Thai-localised browser could offer to transform Gregorian dates into Thai Buddhist era dates. A Japanese browser could localise 16:00 to “16:00時”.
This would be amazing, and I’d love to see browsers and screen readers make use of <time> like this. But for now, it’s just kind of an inert relic of the early HTML5 days. I’ll still use it, though, because (as Marge Simpson would say), I just think it’s neat.