获取日期范围的星期几,javascript

时间:2017-08-16 15:19:13

标签: javascript date

我有日期范围

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

如何才能获得属于该范围的星期几?

范围可以不同,可以是2016-05-25到2017-05-05等。我需要从提供的日期范围返回一周中的独特日期。

结果应该是几周的数组。对于第一个范围应为["Thursday", "Friday", "Saturday", "Sunday", "Monday", "Tuesday"]

如果需要,可以使用Moment,但不能使用jQuery。

1 个答案:

答案 0 :(得分: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. 获得独特的日子:

    var unique = weekdaysNamesRange.filter((item, index, ar) => {
        return weekdaysNamesRange.indexOf(item) === index;
    });
    
  6. 我想有一个更好的解决方案,但这就是我想出来的。