本月、本周、上月等的时间日期过滤

总结常用的时间过滤,本月,本周,上月,上周,使用的是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')
}

猜你喜欢

转载自blog.csdn.net/weixin_43877575/article/details/127867673
今日推荐