必须用 javascript 的 setinterval 驱动 date 对象更新 dom,因 html 标签无自动刷新能力;需注意时区处理、格式补零(如 getmonth()+1 后 padstart)、避免 innerhtml 引发 xss,且业务强一致性场景须依赖服务端时间。

直接用 Date 对象 + setInterval 就能实现,但必须注意时区、格式拼接和 DOM 更新方式这三点,否则页面时间会错、跳变或有 XSS 风险。
为什么不能只靠 HTML 标签显示动态时间
HTML 本身没有内置的实时时间渲染能力。<time></time> 标签仅提供语义化和 datetime 属性,不自动更新内容;<input type="datetime-local"> 是表单控件,只用于用户输入,无法主动展示当前时间。所有“动态”效果都必须由 JavaScript 驱动。
用 setInterval 每秒更新是最稳妥的选择
虽然 requestAnimationFrame 更平滑,但对普通时钟来说没必要——人眼无法感知毫秒级差异,且 setInterval 更易控制、兼容性更好(IE10+ 全支持)。
- 把更新逻辑封装成函数,例如
updateTime(),避免内联字符串(如setInterval("...", 1000))导致作用域混乱和调试困难 - 务必在 DOM 加载完成后再启动定时器,推荐把
<script></script>放在
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











