最稳妥的方式是用 JavaScript 动态写入版权年份,通过 document.getElementById() 获取占位元素并设置 textContent 为 new Date().getFullYear(),确保兼容性和可控性。

HTML里怎么让版权年份自动更新
直接用 JavaScript 动态写入最稳妥,纯 HTML 没有原生变量或模板语法,© 2024 这种写死的写法每年都要手动改,容易漏。
常见错误是试图用 、 或注释来“标记”年份——这些都不会被浏览器渲染成实际文本,更不会自动变。
- 用
document.write()最简,但只适用于页面未关闭 document 流时(即脚本在底部或defer加载) - 更推荐用
document.getElementById()找到占位元素再填值,兼容性好、可控性强 - 别在
head里执行 DOM 操作,此时 body 尚未解析,会报Cannot set property 'innerHTML' of null
示例:
<footer><span id="copyright-year"></span> © My Site</footer><script>
document.getElementById('copyright-year').textContent = new Date().getFullYear();
</script>
要不要用服务器端渲染动态年份
如果项目本身有服务端模板(如 PHP、Nunjucks、Django),用服务端生成年份更干净:不依赖 JS、首屏即正确、SEO 友好。
但纯静态站点(GitHub Pages、Vite 静态部署、Netlify)没后端,硬上服务端逻辑反而增加复杂度,得不偿失。
- PHP:
© - Nunjucks:
© {{ now | date('YYYY') }}(需配置now全局变量) - 注意时区:PHP 默认用服务器时区,
date_default_timezone_set('Asia/Shanghai')才能和中国用户对齐
用 CSS content 属性行不行
不行。::before 或 ::after 的 content 值不支持 JS 表达式或动态函数,只能是字符串、属性值或计数器——而年份不是 CSS 能感知的运行时数据。
生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力: - 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面; - 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”; - 提及位于 `apps/console/src/featur
常见误写:
.copyright::after {
content: "© " attr(data-year); /* data-year 是死的,还得 JS 去设 */
}
- 哪怕你加了
data-year="2024",这个值还是得靠 JS 更新,不如直接写文本 - CSS content 对屏幕阅读器支持弱,语义性差,版权信息最好保持可选中、可复制
为什么不用
本身合法,但它只是语义标注,不解决“自动更新”问题——年份还是写死的。
有人想靠 datetime 属性做文章,比如用 datetime="2024-01-01" 再 JS 解析,纯属绕路:既没省代码,又增加了 DOM 解析开销。
-
适合表示固定时间点(如文章发布日),不适合动态值 - 搜索引擎不从
datetime推导当前年份,也不因此提升 SEO - 若真要用,也得配合 JS 更新
datetime和 innerText,两头都得动
真正要落地,就一条路:JS 注入 + 占位符 ID。别在 HTML 层面幻想“智能替换”,浏览器不会替你执行年份计算。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










