
我实测了前端日期的 5 个坑:差 8 小时只是开始
日期处理是前端少有的「每个项目都要写、每个项目都写出 bug」的领域。我把最容易踩的 5 个坑写成一个实验脚本,在 UTC+8 的 Node 里逐个跑了一遍,下面每个症状都是真实输出,可以自己复跑。先看总账: 三种写法,三种结果(Node,UTC+8 实测): 第一行和第二行差 8 小时。不是 bug,是规范本身:ISO 格式里只有日期的字符串按 UTC 解析,带时间但没带时区的按本地时间解析。写代码的人觉得「这不就是个日期」,解析器认为「这是两种不同的东西」。

