Moment.js转换UTC时间为本地时间仅本地生效 服务器端仍显示数据库UTC时间
代码在服务器无法输出正确本地时间的核心原因
- 时区取值来源问题:
moment.local()方法获取的是代码运行环境的系统时区,你本地开发设备的时区设置为你所在的地区时区,输出自然符合预期;而绝大多数云服务器的默认系统时区都是UTC,直接在服务端运行这段代码,拿到的「本地时间」实际是服务器的UTC时区时间,和你预期的本地时区不符。 - 运行端逻辑错误:如果你的需求是让不同时区的用户都看到对应自己所在地的本地时间,这段转换逻辑不应该放在服务端执行,必须移到用户的浏览器端运行,才能正确读取用户设备的时区做转换。
- 入参解析异常:如果传入的
date_time参数没有携带明确的UTC时区标识,moment.utc(date_time)解析阶段就可能出现偏差,你可以通过打印testDateUtc.valueOf()的时间戳和原始时间的时间戳做比对,排查是否是解析环节出了问题。
内容的提问来源于stack exchange,提问作者freelanceing mindset
相关产品推荐
相关产品推荐

