这两天在写一个促销活动的功能,需要展示选择的时间范围内的所有星期:
// 去重
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'))