如何在javascript中计算2个日期之间的日期名称

How to calculate number of day name between 2 dates in javascript

我有两个约会者和一个星期的复选框列表。用户可以选择开始日期或结束日期,并选中任何复选框日期。我想数一数两天之间的一周。

例如:我想参加任何瑜伽课程,然后我会选择开始或结束日期,也会选择星期一、星期二等。

现在我要计算两个日期之间的所有周一和周二的天数

1
2
 date1 = Mar 01,2016
 date2 = Apr 01,2016

我想像这样计算这些日期之间的天数:

no of sunday: 4
no of monday: 4
no of tuesday: 5 etc..

我试过这个密码

1
2
3
4
5
6
7
8
9
10
var d           = new Date(date1);
var now         = new Date(Date.now());
var daysOfYear  = [];
count           = 0;
for (d ; d <= date1 ; d.setDate(d.getDate() + 1)) {
  val = $("#ch_"+d.getDay());          
  if(val.is(':checked')){
    count++;
  }
}

但它给出了一个TypeError: d.getDay is not a function


您需要在日期之间迭代并检查日期

首先将日期转换为日期对象

1
2
date1 = convertToDateObj(date1); //assuming you already have a way to parse this string to date
date2 = convertToDateObj(date2); //assuming you already have a way to parse this string to date

现在重复它们

1
2
3
4
5
6
var dayCount = {0:0,1:0,2:0,3:0,4:0,5:0,6:0}; //0 is sunday and 6 is saturday
for (var d = date1; d <= date2; d.setDate(d.getDate() + 1))
{
    dayCount[d.getDay()]++;
}
console.log(dayCount);