上周调一个前后端时间对不上的 bug,折腾到凌晨两点。前端传了个 ISO 8601 时间字符串给后端,Node.js 用 JSON.parse() 解完,时间居然自动转成本地时区了!查文档才发现,JSON.parse() 本身不会处理 Date,但如果你用 new Date(jsonStr) 包一层,V8 会按本地时区解析——而我的服务器在 UTC+8,测试机在 UTC+0,直接差出八小时。
后来统一改用 Unix 时间戳传输,再封装成 { timestamp: number },彻底避开字符串歧义。
有没有人踩过类似的“自动转换”坑?特别是跨时区部署的时候……