【发布时间】:2009-11-04 21:35:18
【问题描述】:
我有一个简单的 MVC 表单,其中包含以下元素:
<%= Html.TextBox("FechaInicio") %>
哪个有开始日期。
<%= Html.TextBox("Meses") %>
其中有我要添加的月份数。
我想获取在第一个文本框中输入的日期,加上在第二个文本框中输入的月份数并获得该值。
【问题讨论】:
标签: jquery asp.net html asp.net-mvc
我有一个简单的 MVC 表单,其中包含以下元素:
<%= Html.TextBox("FechaInicio") %>
哪个有开始日期。
<%= Html.TextBox("Meses") %>
其中有我要添加的月份数。
我想获取在第一个文本框中输入的日期,加上在第二个文本框中输入的月份数并获得该值。
【问题讨论】:
标签: jquery asp.net html asp.net-mvc
使用您建立的任何日期格式,将FechaInicio 的值解析为year、month 和day。获取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 月)。
【讨论】:
我会将开始日期的值解析为 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 将自动为您处理月份溢出。看我的回答。
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;
【讨论】: