如何为JavaScript Date格式日期增加指定分钟数(适配Google Calendar API)
解决方案
你可以直接基于Date对象的时间戳做时间偏移计算,不需要手动拼接时间字符串,也不会出现格式、时区不匹配的问题,代码如下:
const date1 = (mail._doc.Data[1].Date + 'T' + mail._doc.Data[1].Time ) const startingTime = new Date(date1) // 45分钟对应毫秒数:45分钟 * 60秒/分钟 * 1000毫秒/秒 const endTime = new Date(startingTime.getTime() + 45 * 60 * 1000)
实现说明
- 核心逻辑是先通过
getTime()拿到起始时间的UTC毫秒级时间戳,叠加45分钟对应的毫秒值后,再重新传入Date构造函数生成结束时间对象 - 不要直接对
Date实例做数值加法,直接写startingTime + xxx会触发对象默认的字符串转换逻辑,最终得到拼接后的非法字符串,这是该需求最常见的实现错误 - 生成的
endTime是标准Date实例,直接传入Google Calendar API即可,调用endTime.toISOString()就能输出你之前正常可用的2022-07-15T21:23:00.000Z格式时间串,完全符合接口格式要求。
内容的提问来源于stack exchange,提问作者chris
相关产品推荐
相关产品推荐

