js通过开始时间和结束时间计算出中间的所有日期,计算这段时间中的周末

// 中国标准时间format yyyy-mm-dd

const formatTime = (time) => {

let ymd = ''

let mouth = (time.getMonth() + 1) >= 10 ? (time.getMonth() + 1) : ('0' + (time.getMonth() + 1))

let day = time.getDate() >= 10 ? time.getDate() : ('0' + time.getDate())

ymd += time.getFullYear() + '-' // 获取年份。

ymd += mouth + '-' // 获取月份。

ymd += day // 获取日。

return ymd // 返回日期。

}

// js通过开始时间和结束时间计算出中间的所有日期

const getAllDate = (start, end) => {

let dateArr = []

let startArr = start.split('-')

let endArr = end.split('-')

let db = new Date()

db.setUTCFullYear(startArr[0], startArr[1] - 1, startArr[2])

let de = new Date()

de.setUTCFullYear(endArr[0], endArr[1] - 1, endArr[2])

let unixDb = db.getTime()

let unixDe = de.getTime()

let stamp

const oneDay = 24 * 60 * 60 * 1000;

for (stamp = unixDb; stamp <= unixDe;) {

dateArr.push(formatTime(new Date(parseInt(stamp))))

stamp = stamp + oneDay

}

return dateArr

}

// 计算日期区间所有周末

const getAllWeekday = (start, end) => {

let dateArr = []

let startArr = start.split('-')

let endArr = end.split('-')

let db = new Date()

db.setUTCFullYear(startArr[0], startArr[1] - 1, startArr[2])

let de = new Date()

de.setUTCFullYear(endArr[0], endArr[1] - 1, endArr[2])

let unixDb = db.getTime()

let unixDe = de.getTime()

let stamp

const oneDay = 24 * 60 * 60 * 1000;

for (stamp = unixDb; stamp <= unixDe;) {

let curDay = new Date(parseInt(stamp))

if(curDay.getDay()==0||curDay.getDay()==6){

dateArr.push(formatTime(curDay))

}

stamp = stamp + oneDay

}

return dateArr

}

// 使用

console.log(getAllDate('2021-01-01', '2021-03-11'))

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容