You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript日期加天数跨月时如何正确实现月份递增

错误原因
  • 你代码里的nextMonth直接复用了原日期的月份,没有从加14天后的addday对象里读取实际月份,1月20日加14天已经跨到2月,沿用原月份自然会输出1.03.2021
  • 代码中引用了未定义的day变量,运行时会直接抛出引用错误
  • 年份同样直接取了原日期的年份,若加天操作跨越了年份,输出也会出错
  • 没有对日期做前导零补全,不符合你预期的2.03.2021格式要求
修正后可直接运行的代码
// 固定基准日期为2021年1月20日,要使用当前日期替换为new Date()即可
const baseDate = new Date('1.20.2021')
// 加14天
const expireDate = new Date(baseDate.getTime() + 14 * 24 * 60 * 60 * 1000)
// 分别读取计算后的年月日,注意月份要+1,JS原生月份从0开始计数
const year = expireDate.getFullYear()
const month = expireDate.getMonth() + 1
// 日期补前导零,不足两位前面补0
const day = String(expireDate.getDate()).padStart(2, '0')
// 拼接输出
const result = `${month}.${day}.${year}`
console.log(result) // 输出 2.03.2021
return result
额外优化建议

也可以用setDate方法实现加天,不需要手动计算毫秒数,容错性更高,会自动处理跨月、跨年的边界情况:

const baseDate = new Date('1.20.2021')
baseDate.setDate(baseDate.getDate() + 14)
// 后续取值、拼接逻辑和上面一致即可

内容的提问来源于stack exchange,提问作者Rexz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 17:24:04