2017-08-16 103 views
0

我有日期範圍獲取星期日期範圍內的天數,JavaScript的

var fromDate = "2017-01-05"; 
var toDate = "2017-01-10"; 

我怎樣才能得到屬於該範圍星期幾?

範圍可以不同,它可以是2016-12-25到2017-05-05等。我需要從提供的日期範圍返回一週中的獨特日期。

結果應該是幾周的數組。對於第一個範圍應該是["Thursday", "Friday", "Saturday", "Sunday", "Monday", "Tuesday"]

可以使用矩,如果需要,但沒有jQuery。

+2

到目前爲止,你有什麼嘗試? – Eric

+0

[在JavaScript中獲取2個日期之間的差異?](https://stackoverflow.com/questions/3224834/get-difference-between-2-dates-in-javascript) – Matus

+0

我試過https:// jsfiddle .net/snoopy_15/fata6ocb /但我不喜歡我的解決方案,當然,它不工作。 – snoopy25

回答

1

這裏是一個可能的解決方案:

  1. Get all dates from the range。本週
  2. 遍歷步驟一的結果,返回天:

    var dates = [...]; //(step one result) 
    let weekdays = []; 
    for (var i = 0; i < dates.length; i++) { 
        weekdays.push(moment(dates[i]).day()) 
    } 
    
  3. 讓平日的數組:

    var wkDays = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"] 
    
  4. 獲得一天的名字:

    let weekdaysNamesRange = []; 
    for (var i = 0; i < weekdays.length; i++) { 
        for (var j = 0; j < wkDays.length; j++) { 
         if (weekdays[i] === j) { 
          weekdaysNamesRange.push(wkDays[j]); 
         } 
        } 
    } 
    
  5. Get unique days:

    var unique = weekdaysNamesRange.filter((item, index, ar) => { 
        return weekdaysNamesRange.indexOf(item) === index; 
    }); 
    

我想有一個更好的解決方案,但是這是我想出了。

+0

出於某種原因,代碼沒有格式化,不知道爲什麼。 – snoopy25

+0

您必須在枚舉中將代碼縮進另外4個空格。 – honk