Google Apps Script调用API返回科学计数法时间戳转Date异常问题
问题解答
时间戳转换出错的遗漏步骤
你拿到的1.635218706E9是秒级Unix时间戳,而JavaScript Date 构造函数要求传入的是毫秒级Unix时间戳,两者量级差了1000倍。
你直接传入转成普通数字后的1635218706时,相当于仅传入了距离1970年1月1日0点的16亿多毫秒,换算后仅过了约18天,所以最终得到的日期接近1969年底。
正确的转换代码如下:
// 从API拿到科学计数法格式的数值 const sciTimestamp = 1.635218706E9; // 先转成普通数字,再乘以1000转换为毫秒级时间戳后传入Date构造函数 const targetDate = new Date(Number(sciTimestamp) * 1000);
执行上述代码后得到的日期就是你预期的2021年10月25日。
API直接返回易读日期格式的方法
- 若你调用的是第三方API:查阅对应API的官方开发文档,绝大多数通用API都支持自定义返回日期格式,通常在请求参数中添加格式控制参数(例如
date_format=iso8601、datetime_output=readable等),即可直接返回2021-10-25T00:00:00Z这类标准化日期字符串,无需额外做时间戳转换。 - 若该API是你自行开发的后端接口:直接修改接口的返回逻辑,将服务端存储的时间戳提前转换为格式化的日期字符串后再返回即可。
内容的提问来源于stack exchange,提问作者Josh Bunzel
相关产品推荐
相关产品推荐

