如何使用javascript获取特定周的第一天(11月的第2周)和特定周的最后一天(11月的第4周)

时间:2018-11-21 16:34:36

标签: javascript date week-number weekday

我需要在javascript中实现一个功能,该功能需要从星期到星期作为输入,即它需要当前月份的星期数(例如:1、2、3、4、5、6),并获取开始日期。 当月当年

的另一周的星期和结束日期

例如:分别选择 3 4 应该给出当前月份的第一天第三周和最后一天的第四周 11月:2018年的输出应为2018年11月11日和2018年11月24日

2 个答案:

答案 0 :(得分:0)

您可以尝试以下方法找出您的预期结果。下面的解决方案将月份作为输入,以便我们可以验证任何月份

function getDates(m, a, b) {
  var date = new Date()
  , y = date.getFullYear()
  , lastDate = new Date(y, m, 0).getDate()
  
  var offset = new Date(new Date().setDate(1)).getDay()
  
  return [(a - 1) * 7 + 1, b * 7].map(d => {
    d -= offset
    if(d < 1) d = 1
    if(d > lastDate) d = lastDate
    return d + '/' + m + '/' + y
  })
}

console.log(getDates(11,1,2))
console.log(getDates(11,2,3))
console.log(getDates(11,3,4))
console.log(getDates(11,1,5))

答案 1 :(得分:0)

function getRange(week1, week2){
    var start = (moment().startOf('month') >  moment().startOf('month').add(week1 - 1, 'week').startOf('week')) ? moment().startOf('month') : moment().startOf('month').add(week1 - 1, 'week').startOf('week');
    var end   = ( moment().endOf('month')  <  moment().startOf('month').add(week2 - 1 , 'week').endOf('week')) ? moment().endOf('month'): moment().startOf('month').add(week2 - 1 , 'week').endOf('week');

    console.log(start.format('D/MM/YYYY'))
    console.log(end.format('D/MM/YYYY'))

}

如果可以使用moment.js