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

1 篇文章 0 订阅

总结常用的时间过滤,本月,本周,上月,上周,使用的是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')
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值