首页 文章

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

提问于
浏览
1

我有2个日期选择器和一个工作日的复选框列表 . 用户可以选择开始日期或结束日期,并选中任何复选框日 . 我想计算2天之间的工作日数 .

例如:我想参加任何瑜伽课程,然后我将选择开始或结束日期,并选择星期一,星期二等工作日 .

现在我想计算2个日期之间所有星期一和星期二的数量

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

我想计算这些日期之间的日期名称,如下所示:

星期日没有:星期一4星期四:星期二4号星期五:5号等等 .

我试过这段代码

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
    

    现在迭代它们

    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);
    

相关问题