如何使用 javascript 获取特定周的第一天(11 月的第 2 周)和特定周的最后一天(11 月的第 4 周)
How to get first day of particular week(week 2 in november) and last day of particular week(week 4 in november) using javascript
我需要在 javascript 中实现一个功能,它需要从周到周作为输入,即它需要当月的周数(例如:1、2、3、4、5、6)和获取当前月份和当前年份
中一周的开始日期和其他一周的结束日期
例如:选择 3 和 4 应该给出当月 第三周 第一天和第 4 周 最后一天
在 Nov:2018 中,输出应为 11/11/2018 和 24/11/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))
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
我需要在 javascript 中实现一个功能,它需要从周到周作为输入,即它需要当月的周数(例如:1、2、3、4、5、6)和获取当前月份和当前年份
中一周的开始日期和其他一周的结束日期例如:选择 3 和 4 应该给出当月 第三周 第一天和第 4 周 最后一天 在 Nov:2018 中,输出应为 11/11/2018 和 24/11/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))
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