使用javascript计算给定开始日期和结束日期之间的所有日期

时间:2015-04-27 10:46:39

标签: javascript html

我有一个开始日期和结束日期,我想根据给定的持续时间计算这些天之间的日期数组。
例如,
 如果开始日期是2015年1月1日,结束日期是2015年6月1日,如果我将持续时间定为3个月,则输出应为:

01/04/2015  
01/06/2015  

如何使用JavaScript实现此目标,我需要在form中显示它。

1 个答案:

答案 0 :(得分:1)

如果您想使用计算两个日期之间的差异:

然后,

function dateDiff() { 
   var dtFrom = document.getElementById('txtFromDate').value;
   var dtTo = document.getElementById('txtToDate').value;

   var dt1 = new Date(dtFrom);
   var dt2 = new Date(dtTo);
   var diff = dt2.getTime() - dt1.getTime();
   var days = diff/(1000 * 60 * 60 * 24);
   alert(dt1 + ", " + dt2);

   alert(days);
   return false;
}
function isNumeric(val) {
   var ret = parseInt(val);
}

HTML:

<label for="txtFromDate">From Date : </label>
   <input type="text" id="txtFromDate" name="txtFromDate" size="10" maxlength="10" value="03/25/2013"/><br/>
   <label for="txtToDate">To Date : </label>
   <input type="text" id="txtToDate" name="txtDate" size="10" maxlength="10" value="03/26/2013"/><br/>
   <button id="btnCheck" name="btnCheck" onClick="dateDiff();" type="button">Difference</button>

编辑后:

以下解决方案是获取指定日期之间的所有日期。

Working Demo

// using Datepicker value example code
$('#getBetween').on('click', function () {
    var start = $("#from").datepicker("getDate"),
        end = $("#to").datepicker("getDate");
    var between = getDates(start, end);
    $('#results').html(between.join('<br> '));
});

// This function doing this work.
function getDates(start, end) {
    var datesArray = [];
    var startDate = new Date(start);
    while (startDate <= end) {
        datesArray.push(new Date(startDate));
        startDate.setDate(startDate.getDate() + 1);
    }
    return datesArray;
}