Time and date filtering for this month, this week, last month, etc.

Summarize the commonly used time filtering, this month, this week, last month, last week, the moment is used. The
premise is to use the moment and npm install by yourself.

1. Current date

let todayDate = moment().format('YYYY-MM-DD') // 当前日期

2. The day before the current date

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. The day after the current date

let odata = new Date(new Date(this.projectProgessDate).getTime() + 24 * 60 * 60 * 1000) // 计算当前日期 +1
this.nextDay = this.convertToDate(odata) // 格式化日期并赋值

4. This week (this week is from Friday to next Thursday)

 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. Last week (last week is the range from last Friday to this Thursday)

 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. Filter this month (time from the 1st to the end of the month)

 let start = moment().startOf('month').format('YYYY-MM-DD')
 let end = moment().endOf('month').format('YYYY-MM-DD')

7. This month (range from the 25th of the previous month to the 26th of this month)

	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')
}

Guess you like

Origin blog.csdn.net/weixin_43877575/article/details/127867673