我需要在javascript中实现一个功能,该功能需要从星期到星期作为输入,即它需要当前月份的星期数(例如:1、2、3、4、5、6),并获取开始日期。 当月和当年
的另一周的星期和结束日期例如:分别选择 3 和 4 应该给出当前月份的第一天第三周和最后一天的第四周 11月:2018年的输出应为2018年11月11日和2018年11月24日
答案 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