【问题标题】:Add months to a date using jQuery使用 jQuery 将月份添加到日期
【发布时间】:2009-11-04 21:35:18
【问题描述】:

我有一个简单的 MVC 表单,其中包含以下元素:

<%= Html.TextBox("FechaInicio") %>

哪个有开始日期。

<%= Html.TextBox("Meses") %>

其中有我要添加的月份数。

我想获取在第一个文本框中输入的日期,加上在第二个文本框中输入的月份数并获得该值。

【问题讨论】:

    标签: jquery asp.net html asp.net-mvc


    【解决方案1】:

    使用您建立的任何日期格式,将FechaInicio 的值解析为yearmonthday。获取Meses的值。

    // Magical parsing of `FechaInicio` here
    var year = 2010, month = 9, day = 14;
    // The value of `meses`
    var meses_mas = 3;
    
    var future_date = new Date(year, month + meses_mas, day);
    
    console.log(future_date);
    

    您最终会得到Wed Apr 14 2011 00:00:00 GMT-0700 (PST)(时区可能会有所不同)。 JavaScript 的 Date 对象将为您处理月份溢出。

    另外,作为旁注,Date 将月份视为零索引(0 = 1 月 ... 11 = 12 月)。

    【讨论】:

    • 实际上我只需要添加一个 Number() 来对每个 var 进行强制转换,然后再添加它们..
    【解决方案2】:

    我会将开始日期的值解析为 javascript 日期对象。然后使用类似下面的东西。

    var startDate = parseDate();
    var monthsToAdd = getMonthsToAdd();
    
    while (startDate.getMonth() + monthsToAdd > 11) {
      startDate.setFullYear(startDate.getFullYear() + 1);
      monthsToAdd - 11;
    }
    
    startDate.setMonth(startDate.getMonth() + monthsToAdd);
    

    【讨论】:

    • 这个循环真的没有必要。 Date 将自动为您处理月份溢出。看我的回答。
    • gtk,文档没有明确说明,所以我想我会涵盖我的基础。
    【解决方案3】:
            var numofMonthtoAdd = 5; //number of month you may want to add
    
            var beginDate = new Date();
            var month = (parseInt(beginDate.getMonth()) + parseInt(numofMonthtoAdd )) % 12;
            var year = (parseInt(beginDate.getMonth()) + parseInt(numofMonthtoAdd )) / 12;
            beginDate.setMonth(month);
            beginDate.setFullYear(parseInt(beginDate.getFullYear()) + year );
            return beginDate;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-27
      • 1970-01-01
      • 1970-01-01
      • 2022-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多