Как получить первый день конкретной недели (неделя 2 в ноябре) и последний день конкретной недели (неделя 4 в ноябре) с использованием JavaScript - PullRequest
0 голосов
/ 21 ноября 2018

Мне нужно реализовать функциональность в javascript, которая принимает от недели до недели в качестве входных данных, то есть требуется номер недели текущего месяца (например, 1,2,3,4,5,6) и получить дату началанеделя и день окончания другой недели в текущий месяц и текущий год

Пример: выбор 3 и 4 долженукажите текущий месяц 3-я неделя первый день и 4-я неделя последний день В ноябре 2018 г. выход должен быть как 11/11/2018, так и 24/11/2018

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018
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

0 голосов
/ 21 ноября 2018

Вы можете попробовать следующий подход, чтобы выяснить ожидаемый результат.Приведенное ниже решение принимает в качестве входного значения месяц, чтобы мы могли проверить его на любой месяц

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))
...