[英]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.