簡體   English   中英

如何通過使用javascript或jquery獲取日期范圍之間的天數

[英]How to get days between date range by using javascript or jquery

在表單中,我定義開始日期,結束日期和工作日

例:

Start date: 2017-02-07
End date: 2017-03-07

工作日:星期一和星期四

現在,我想使用Javascript或jQuery獲取開始日期和結束日期之間的所有星期一和星期四。

誰能幫我?

謝謝...

您可以解析日期並迭代增量1天和getDay以將sun(0)映射到sat(6)

 var startDate = new Date("2017-02-07"); var endDate = new Date("2017-03-07"); var totalMon = []; var totalThu = []; for (var i = startDate; i <= endDate; ){ if (i.getDay() == 1){ totalMon.push(i.getFullYear() + "-" + (i.getMonth()+1) + "-" + i.getDate()); } if (i.getDay() == 4){ totalThu.push(i.getFullYear() + "-" + (i.getMonth()+1) + "-" + i.getDate()); } i.setTime(i.getTime() + 1000*60*60*24); } console.log(totalMon.length ,totalMon); console.log(totalThu.length ,totalThu); 

簡單的代碼。 Codepen

var startDate = new Date('2017-02-07');
var endDate = new Date('2017-02-17');
var monday = [];
var thursday = [];
for (var d = new Date(startDate); d <= new Date(endDate); d.setDate(d.getDate() + 1)) {
    if(d.getDay()==1)
      monday.push(d);
    else if(d.getDay()==4)
      thursday.push(d);
}

下面的代碼查找星期一的數量。 您可以修改它以計算任何一天。 它基本上可以找到兩個日期之間的天數差異。 除以7(這是每天的次數)。 現在,對於待處理的日期,循環瀏覽日期,並檢查是否需要的日期進入該循環。

var startDate = new Date(2017, 02, 07);
var endDate = new Date(2017, 03, 07);
var dayDiff = Math.round((endDate-startDate)/(1000*60*60*24));
var numberOfMondays = Math.floor(dayDiff/7);
var remainingDays = dayDiff%7;
for(i=0;i<remainingDays;i++)
{
    var dateObj = new Date();
    dateObj.setDate(endDate.getDate() - i);
    if(dateObj.getDay() == 2)
    numberOfMondays=numberOfMondays+1;
}
alert(numberOfMondays);

PS:另外兩個答案遍歷所有日期。 我不會建議這個。 在上面的代碼中,無論日期如何,循環中的迭代次數都不會超過6。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM