为什么new Date返回错误日期?时间戳传参异常问题咨询
问题原因及解决方案
哦,这个坑我踩过好多次!你遇到的核心问题是时间戳的单位不匹配。
关键知识点:
new Date()构造函数如果接收数字类型的参数,要求传入的是毫秒级时间戳(从1970年1月1日00:00:00 UTC开始计算的毫秒数)。- 你传入的
1550571050是秒级时间戳,比实际需要的单位小了1000倍——相当于把"1550秒"当成了时间戳,计算出来自然是1970年年初的日期。
解决办法:
把秒级时间戳乘以1000,转换成毫秒级再传入Date构造函数:
var date = new Date(1550571050 * 1000);
执行这段代码后,返回的结果就是你预期的Mon Feb 19 2019 05:42:51 GMT+0700啦。
小提醒:
现在很多后端接口返回的时间戳默认都是秒级的,前端处理时一定要记得做单位转换,不然就会出现这种"穿越回1970年"的尴尬情况😉。
内容的提问来源于stack exchange,提问作者My real name
相关产品推荐
相关产品推荐

