总结常用的时间过滤,本月,本周,上月,上周,使用的是moment
前提使用的是moment 自行npm install
1.当前日期
let todayDate = moment().format('YYYY-MM-DD') // 当前日期
2.当前日期的前一天
convertToDate (date) {
// var date = new Date(date)
var y = date.getFullYear()
var m = date.getMonth() + 1
var d = date.getDate()
m = m < 10 ? '0' + m : m // 月小于10,加0
d = d < 10 ? '0' + d : d // day小于10,加0
return y + '-' + m + '-' + d
},
let odata = new Date(new Date(this.projectProgessDate).getTime() - 24 * 60 * 60 * 1000) // 计算当前日期 -1
this.preDay = this.convertToDate(odata) // 格式化日期并赋值
3.当前日期的后一天
let odata = new Date(new Date(this.projectProgessDate).getTime() + 24 * 60 * 60 * 1000) // 计算当前日期 +1
this.nextDay = this.convertToDate(odata) // 格式化日期并赋值
4.本周(本周为本周五到下周四)
var time = new Date()
var y = time.getFullYear() // 年
var m = (time.getMonth() + 1).toString().padStart(2, '0') // 月
var d = time.getDate().toString().padStart(2, '0') // 日
this.date = y + '-' + m + '-' + d
let start
let end
let weekday = parseInt(moment().format('E')) // 计算今天是这周第几天
if (weekday < 5) {
start = new Date(time.getTime() - 1000 * 60 * 60 * 24 * (weekday + 2))
end = new Date(1000 * 60 * 60 * 24 * (4 - weekday) + time.getTime())
} else {
start = new Date(1000 * 60 * 60 * 24 * (5 - weekday) + time.getTime())
end = new Date(1000 * 60 * 60 * 24 * (11 - weekday) + time.getTime())
}
y = start.getFullYear() // 年
m = start.getMonth() + 1 // 月
d = start.getDate() // 日
this.PreDate = y + '-' + m + '-' + d
y = end.getFullYear() // 年
m = end.getMonth() + 1 // 月
d = end.getDate() // 日
this.NextDate = y + '-' + m + '-' + d
5.上周(上周为上周五到本周四的范围)
var myDate = new Date()
let start
let end
let weekday = parseInt(moment().format('E')) // 计算今天是这周第几天
if (weekday < 5) {
start = new Date(myDate.getTime() - 1000 * 60 * 60 * 24 * (weekday + 3))
end = new Date(myDate.getTime() - 1000 * 60 * 60 * 24 * (weekday + 9))
} else {
start = new Date(1000 * 60 * 60 * 24 * (4 - weekday) + myDate.getTime())
end = new Date(myDate.getTime() - 1000 * 60 * 60 * 24 * (weekday + 2))
}
var y = start.getFullYear() // 年
var m = start.getMonth() + 1 // 月
var d = start.getDate() // 日
this.NextDate = y + '-' + m + '-' + d
y = end.getFullYear() // 年
m = end.getMonth() + 1 // 月
d = end.getDate() // 日
this.PreDate = y + '-' + m + '-' + d
6.本月过滤(所在月1号到月末的时间)
let start = moment().startOf('month').format('YYYY-MM-DD')
let end = moment().endOf('month').format('YYYY-MM-DD')
7.本月(上月25号到本月26的范围)
let month = moment().format('YYYY-MM') + '-01'
// 月的周期是上个月26号->本月25号
if (moment().isBefore(moment().add(0, 'month').format('YYYY-MM') + '-26 00:00:00')) {
startDate = moment(month).add(-1, 'month').add(25, 'days').format('YYYY-MM-DD 00:00:00')
endDate = moment(month).add(24, 'days').format('YYYY-MM-DD 23:59:59')
} else {
startDate = moment(month).add(25, 'days').format('YYYY-MM-DD 00:00:00')
endDate = moment(month).add(1, 'month').add(24, 'days').format('YYYY-MM-DD 23:59:59')
}