【问题标题】:Add One Month to a Date in JavaScript在 JavaScript 中将一个月添加到日期
【发布时间】:2010-05-17 11:42:08
【问题描述】:

我有一个需要使用 JavaScript Date 对象增加一个月的输入字段。下面是我为增加月份所做的努力的示例。这个问题似乎是它将显示 0 作为一月并且不会增加年份。

nDate.setDate(nDate.getDate());
inputBox1.value = (nDate.getMonth() + 1) + "/" + (nDate.getDate()) + "/" +  (nDate.getFullYear());

【问题讨论】:

  • 问题:如果该日期是 2010 年 1 月 31 日会发生什么?是否希望看到 01/28/2010 或 03/03/2010?
  • 投票重新开放,因为这显然是一个真实的问题 - 30k 次观看,24 次投票的合理答案......
  • @ben 我认为您的评论假设该月有 30 天?
  • @supersan - 没错,那是我的短视!已删除。

标签: javascript jquery date datetime


【解决方案1】:

使用Date.setMonth:

var d = new Date(2000, 0, 1); // January 1, 2000
d.setMonth(d.getMonth() + 1);
console.log(d.getFullYear(), d.getMonth() + 1, d.getDate());

Date.setMonth 是范围证明,即自动调整 0...11 以外的月份。

【讨论】:

    【解决方案2】:

    您必须从文本框中取出文本,然后将其传递给 Date() 构造函数:

    var d = new Date(text);

    然后格式化日期字符串:

    var str = d.getDate(), d.getMonth() + 1, d.getFullYear()

    并将测试框设置为该值

    【讨论】:

    • 十二月怎么样 --> 一月
    • 嗯,我认为它滚动了,但也许你必须明确检查。或者完全有更好的方法
    • 我不明白你的行是如何创建日期的,它似乎会创建类似 30、4、1002 的内容
    • 我的错误,从我的一个应用程序中复制+粘贴,它的功能略有不同!
    • @leora 将一个月添加到 12 月将导致一年滚动。我不知道的是,如果你从一个长月的月底滚动到一个短月的月底会发生什么。
    猜你喜欢
    • 2012-12-19
    • 2012-09-29
    • 2011-02-11
    • 2017-01-08
    • 2020-05-28
    • 2013-07-14
    • 1970-01-01
    • 2022-01-19
    • 2023-03-08
    相关资源
    最近更新 更多