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

assigning date values to input fields using date picker

本文关键字:日期 字段 分配 输入 选择器      更新时间:2023-09-26

我有一个url参数,名为startingdate,格式为dd-mm-yyyy。我在html字段中有输入字段,我需要为这些输入字段设置日期。我需要这样设定日期。如果开始日期(url参数字符串)为2014年1月1日,则第一个输入字段的日期应为2015年2月15日。这意味着1个月零2周后。然后,下一个输入字段的日期应为2014年2月15日之后的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());
}

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

2个代码问题-

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

此外,我对您的代码进行了一些更新,以便循环能够继续正常工作。这个循环进行了3次迭代,但应该可以扩展到10次。

最后,如果你的答案与预期不同,这个线索可能是问题的原因。如何将天数添加到今天';s日期?

JS Fiddle: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);
}