js获取当前日期的前一个月、往前推几个月、当月第一天

 上月当天到本月当天

var now = new Date()  //当前日期
var year = now.getFullYear()   //当前年
var month = now.getMonth() + 1   //当前月
var day= now.getDate()   //当天
if (parseInt(month) < 10) {
    month = "0" + month
}
if (parseInt(day) < 10) {
    day = "0" + day
}

var dateObj = {}
dateObj.now = year + '' + month + '' + day
//这里当我们年月日添加的时候,中间一定也要写空的字符串,如果不写的话,极大可能这三个数会相加起来,下面的同理 !!!

if (parseInt(month) == 1) {
    dateObj.last = parseInt(year) - 1 + '12' + '01';
    this.startDay = dateObj.last
    this.endDay = dateObj.now
}
var preSize = new Date(year, parseInt(month) - 1, 0).getDate()
if (preSize < parseInt(day)) {
    dateObj.last = year + month + '01'
    this.startDay = dateObj.last
    this.endDay = dateObj.now
}
if (parseInt(month) < 10) {
    dateObj.last = year + '0' + parseInt(month) + '01'
    if (parseInt(month) == '01') {
        dateObj.last = year -1 + '12' + '01'
    }
    this.startDay = dateObj.last
    this.endDay = dateObj.now
} else {
    dateObj.last = year + '' + parseIng(month) + '01'
    this.startDay = dateObj.last
    this.endDay = dateObj.now
}
//我这个案例写的是当月的第一天到当天,如果需要的是上个月的今天到这个月的当天的话,只需要把 dateObj.last 后面加的‘01’改为day就可以实现

如果我们需要的是当天往前推几个月的,可以这么实现

var now = new Date()  //当前日期
var ago = null
if (now.getMonth() >= 8) {
    ago = new Date(now.getFullYear(), now.getMonth() - 8, now.getDate())
} else {
    ago = new Date(now.getFullYear() - 1, now.getMonth() + 4, now.getDate())
}
var year = ago .getFullYear()   //当前年
var month = ago .getMonth() + 1   //当前月
var day= ago .getDate()   //当天

//从这里开始,就跟上面的代码一样了

if (parseInt(month) < 10) {
    month = "0" + month
}
if (parseInt(day) < 10) {
    day = "0" + day
}

var dateObj = {}
dateObj.now = year + '' + month + '' + day

if (parseInt(month) == 1) {
    dateObj.last = parseInt(year) - 1 + '12' + '01';
    this.startDay = dateObj.last
    this.endDay = dateObj.now
}
var preSize = new Date(year, parseInt(month) - 1, 0).getDate()
if (preSize < parseInt(day)) {
    dateObj.last = year + month + '01'
    this.startDay = dateObj.last
    this.endDay = dateObj.now
}
if (parseInt(month) < 10) {
    dateObj.last = year + '0' + parseInt(month) + '01'
    if (parseInt(month) == '01') {
        dateObj.last = year -1 + '12' + '01'
    }
    this.startDay = dateObj.last
    this.endDay = dateObj.now
} else {
    dateObj.last = year + '' + parseIng(month) + '01'
    this.startDay = dateObj.last
    this.endDay = dateObj.now
}

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值