我正在寻找将 X 个月添加到 JavaScript 日期的最简单、最干净的方法。
有内置的东西可以做到这一点吗?
原文由 Chad 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在寻找将 X 个月添加到 JavaScript 日期的最简单、最干净的方法。
有内置的东西可以做到这一点吗?
原文由 Chad 发布,翻译遵循 CC BY-SA 4.0 许可协议
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
以下函数将月份添加到 JavaScript ( source ) 中的日期。它考虑了年份翻转和不同的月份长度:
上述解决方案涵盖了从天数大于目标月份的月份移动的边缘情况。例如。
将十二个月添加到 2020 年 2 月 29 日(应为 2021 年 2 月 28 日)
2020 年 8 月 31 日加一个月(应为 2020 年 9 月 30 日)
如果在应用
setMonth
时月份的日期发生了变化,那么我们知道由于月份长度的不同,我们已经溢出到下个月。在这种情况下,我们使用setDate(0)
回到上个月的最后一天。注意:此答案的此版本替换了未优雅处理不同月份长度的早期版本(如下)。