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

本文介绍了一种方法,用于获取指定日期范围内的所有星期数,通过定义一系列实用的JavaScript函数实现,包括获取当前日期星期几、获取日期范围内所有日期及获取所有星期。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

// 去重
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'))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值