JS获取某段日期范围内的所有星期

这两天在写一个促销活动的功能,需要展示选择的时间范围内的所有星期:

// 去重
function unique(arr) {
  arr = arr.sort()
  return Array.from(new Set(arr))
}

// 获取当前日期星期几
function getWeekDate(time) {
  var now = new Date(time)
  var day = now.getDay()
  var weeks = [7, 1, 2, 3, 4, 5, 6]
  var week = weeks[day]
  return week
}

// 获取日期范围内的所有日期
function getDate(datestr) {
  var temp = datestr.split('-')
  var date = new Date(temp[0], parseInt(temp[1]) - 1, temp[2])
  return date
}

// 获取日期范围内所有的星期
function getAll(start, end) {
  var weekList = []
  var startTime = getDate(start)
  var endTime = getDate(end)
  while (endTime.getTime() - startTime.getTime() >= 0) {
    var year = startTime.getFullYear()
    var month =
      startTime.getMonth().toString().length === 1
        ? '0' + startTime.getMonth().toString()
        : startTime.getMonth()
    var day =
      startTime.getDate().toString().length === 1
        ? '0' + startTime.getDate()
        : startTime.getDate()
    var date = year + '-' + (parseInt(month) + 1) + '-' + day
    weekList.push(getWeekDate(date))
    startTime.setDate(startTime.getDate() + 1)
  }

  return unique(weekList)
}

console.log(getAll('2019-12-01', '2019-12-04'))

你可能感兴趣的:(前端)