2017-08-16 109 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