이번 달, 이번 주, 지난 달 등의 시간 및 날짜 필터링

일반적으로 사용되는 시간 필터링을 정리하면 이번 달, 이번 주, 지난 달, 지난 주, 모멘트를 사용합니다.
모멘트를 사용하고 직접 npm을 설치하는 것이 전제입니다.

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

Supongo que te gusta

Origin blog.csdn.net/weixin_43877575/article/details/127867673
Recomendado
Clasificación