使用日期选择器将日期值分配给输入字段

时间:2014-10-14 01:50:24

标签: javascript jquery jquery-ui jquery-ui-datepicker

我有一个名为开始日期的url参数,格式为dd-mm-yyyy。我在html字段中输入了字段,我需要为这些输入字段设置日期。我需要将日期设置为这样。如果开始日期(url参数字符串)为01-01-2014,则第一个输入字段的日期应为15-02-2015。这意味着1个月和2个星期后。然后下一个输入字段应该具有15-02-2014之后的1个月和2个星期的日期。这应该发生10次。我正在使用for循环。我为我的输入字段分配了jquery datepicker

var initialDate = "01-01-2014";
var x;
for(x=1; x<= 10;x++){


   var dateArray = initialDate.split("-");
   var dateObj = new Date(dateArray[2],dateArray[1],dateArray[0]);
   dateObj.setMonth(dateObj.getMonth()+1);
   dateObj.setDate(dateObj.getDate()+14);  

   // Assign the new date value to input field.
   $("#dateOf_installment_"+x).val(dateObj.getDate()+"-"+dateObj.getMonth()+"-"+dateObj.getFullYear());

}

但这并没有给我所需的价值。如何解决这个问题,谢谢大家!

1 个答案:

答案 0 :(得分:1)

代码存在2个问题 -

Date对象在Jan-Dec月份使用0-11而不是1-12。因此,当您设置日期对象的月份时,您需要减去1以设置正确的月份。当您将月份转换回1月至12月1日至12月时,您需要添加1。

此外,我稍微更新了您的代码,以便循环继续正常工作。此循环进行3次迭代,但应该可扩展为10。

最后,如果您的答案与预期不同,则此线程可能是问题的原因。 How to add number of days to today's date?

JS小提琴:http://jsfiddle.net/biz79/bteL6138/

var initialDate = "01-01-2014";
var lastDate = initialDate;
var x;

for (x = 1; x <= 3; x++) {
    var dateArray = lastDate.split("-");

    // sub 1 from month
    var dateObj = new Date(dateArray[2], dateArray[1] - 1, dateArray[0]);

    dateObj.setMonth(dateObj.getMonth() + 1);
    dateObj.setDate(dateObj.getDate() + 14);

    // add 1 for month
    lastDate = dateObj.getDate() + "-" + (dateObj.getMonth() + 1) + "-" + dateObj.getFullYear();              

    $("#dateOf_installment_" + x).val(lastDate);
}