Javascript 创建两个日期之间的日期数组

Javascript 创建两个日期之间的日期数组,javascript,Javascript,我有两个日期:开始日期和结束日期。结束日期总是比开始日期短一天。因此,如果我的开始日期是19日,那么结束日期将是下个月18日 我正在尝试在这两个日期之间创建一个天数数组。 (每月从19日到18日,然后从18日到18日计算差额) 2018年8月19日-2018年9月18日=30天 2018年9月18日-2019年10月18日=30天 2018年10月18日-2018年11月18日=31天 数组=[30,30,31] 我使用下面的代码来计算日期之间的天数差 function daysBetwe

我有两个日期:开始日期和结束日期。结束日期总是比开始日期短一天。因此,如果我的开始日期是19日,那么结束日期将是下个月18日

我正在尝试在这两个日期之间创建一个天数数组。 (每月从19日到18日,然后从18日到18日计算差额)

2018年8月19日-2018年9月18日=30天

2018年9月18日-2019年10月18日=30天

2018年10月18日-2018年11月18日=31天

数组=[30,30,31]

我使用下面的代码来计算日期之间的天数差

  function daysBetweenArrears (date1, date2){

         date1.setDate(date1.getDate() );
         date2.setDate(date2.getDate() - 1);
         var Diff = Math.abs(date2.getTime() - date1.getTime());
         var TimeDifference = Math.round(Diff / (1000 * 3600 * 24));
         return TimeDifference;
    }
下面是创建数组的代码

  if (document.getElementById("endDate"))
             y = document.getElementById("endDate").value;
          if (document.getElementById("startDate"))
             z = document.getElementById("startDate").value;

var dateArr = getDateArray(z, y);
     var dayCountArr = "";
     var b = [];

     for (var x = 0; x < dateArr.length-1; x++)
     {
         dayCountArr += daysBetweenArrears(dateArr[x], dateArr[x+1], ",");
         b.push(daysBetweenArrears(dateArr[x], dateArr[x+1]));
     }

您可以在两天之间更新函数days

const daysbetween欠款=(日期1,日期2)=>{
const time1=新日期(date1).getTime();
const time2=新日期(date2).getTime();
const diff=Math.abs(time2-time1);
返回数学舍入(差/(1000*60*60*24));
};
console.log(欠款之间的天数(“2018年8月18日”、“2018年9月18日”);

console.log(欠款之间的天数('2018年6月18日'、'2018年7月18日')您可以使用moment来完成此操作。希望这有帮助

const start=“8/19/2018”;
const end=“11/18/2018”;
常数日期=[];
const mstart=时刻(新日期(开始));
常数修正=时刻(新日期(结束));
for(设i=0;mstart

示例日期的可能重复令人困惑,因为它们不符合您所说的内容。你有一些日期相隔一年以上。@Herohtar它们相隔一年有多少?它只上升了3个月。再看看。您有
2018年8月19日-2019年9月18日
,等等。年份不同。@Herohtar哦,谢谢。我刚刚修正了。数组中的第一个数字应该是30而不是31,因为日期是从19号到18号。@ace23更新了答案。如果这对你有帮助,请告诉我。我试过了。我不工作,但由于某种原因,如果我试图查看日期范围,它就会崩溃,而且我也无法添加任何if-else语句@ace23你能举一个你试过的例子吗?“查看日期范围”是什么意思?日期范围=2018年8月19日,2018年9月19日,2019年10月19日…我尝试将if-else条件添加到该条件中,但代码崩溃。
date2.setDate(date2.getDate() - 1);