일반적으로 사용되는 시간 필터링을 정리하면 이번 달, 이번 주, 지난 달, 지난 주, 모멘트를 사용합니다.
모멘트를 사용하고 직접 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')
}