javaScript截取一周 、一个月、三个月的时间范围

// 近3个月
function getLast3Month() {
    var now = new Date();
    var year = now.getFullYear();
    var month = now.getMonth() + 1;//0-11表示1-12月
    var day = now.getDate();
    var dateObj = {};
    dateObj.now = year + '-' + month + '-' + day;
      var nowMonthDay = new Date(year, month, 0).getDate();    //当前月的总天数
    if(month - 3 <= 0){ //如果是1、2、3月,年数往前推一年
        var last3MonthDay = new Date((year - 1), (12 - (3 - parseInt(month))), 0).getDate();    //3个月前所在月的总天数
        if(last3MonthDay < day){    //3个月前所在月的总天数小于现在的天日期
            dateObj.last = (year - 1) + '-' + (12 - (3 - month)) + '-' + last3MonthDay;
        }else{
            dateObj.last = (year - 1) + '-' + (12 - (3 - month)) + '-' + day;
        }
    }else{
        var last3MonthDay = new Date(year, (parseInt(month) - 3), 0).getDate();    //3个月前所在月的总天数
        if(last3MonthDay < day){    //3个月前所在月的总天数小于现在的天日期
            if(day < nowMonthDay){        //当前天日期小于当前月总天数,2月份比较特殊的月份
                dateObj.last = year + '-' + (month - 3) + '-' + (last3MonthDay - (nowMonthDay - day));
            }else{
                dateObj.last = year + '-' + (month - 3) + '-' + last3MonthDay;
            }
        }else{
            dateObj.last = year + '-' + (month - 3) + '-' + day;
        }
    }
    return dateObj;
}
// 近一个月
function getLastMonth() {
    var now = new Date();
    var year = now.getFullYear();
    var month = now.getMonth() + 1;//0-11表示1-12月
    var day = now.getDate();
    var dateObj = {};
    dateObj.now = year + '-' + month + '-' + day; 
    var nowMonthDay = new Date(year, month, 0).getDate();    //当前月的总天数
    if(month - 1 <= 0){ //如果是1月,年数往前推一年<br>     
        dateObj.last = (year - 1) + '-' + 12 + '-' + day;
    }else{
        var lastMonthDay = new Date(year, (parseInt(month) - 1), 0).getDate();  
        if(lastMonthDay < day){    //1个月前所在月的总天数小于现在的天日期
            if(day < nowMonthDay){        //当前天日期小于当前月总天数
                dateObj.last = year + '-' + (month - 1) + '-' + (lastMonthDay - (nowMonthDay - day));
            }else{
                dateObj.last = year + '-' + (month - 1) + '-' + lastMonthDay;
            }
        }else{
            dateObj.last = year + '-' + (month - 1) + '-' + day;
        }
    }
    return dateObj;
}
// 近一周
function getLastWeek() {
    var now = new Date();
    var year = now.getFullYear();
    var month = now.getMonth() + 1;//0-11表示1-12月
    var day = now.getDate();
    var dateObj = {};
    dateObj.now = year + '-' + month + '-' + day;
    if(day - 7 <= 0){   //如果在当月7日之前
        var lastMonthDay = new Date(year, (parseInt(month) - 1), 0).getDate();    //1周前所在月的总天数
        if(month - 1 <= 0){ //如果在当年的1月份
            dateObj.last = (year - 1) + '-' + 12 + '-' + (31 - (7 - day));
        }else{
            dateObj.last = year + '-' + (month - 1) + '-' + (lastMonthDay - (7 - day));
        }
    }else{
        dateObj.last = year + '-' + month + '-' + (day -7);
    }
    return dateObj;
}

公共方法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaScript获取当前时间向前推三个的方法有多种实现方式。以下是其中两种实现方法: 方法一:使用Date对象和setMonth()方法 首先,使用Date对象获取当前时间份。然后,使用setMonth()方法将份减去3,即可得到当前时间向前推三个时间。 代码示例: ```javascript var date = new Date(); date.setMonth(date.getMonth() - 3); console.log(date); ``` 在控制台输出的结果中,可以看到日期已经向前推了三个。 需要注意的是,setMonth()方法会自动处理润的问题。如果当前时间是230日,向前推3个,就会变成1130日,而不是九份的最后一天。 方法二:使用moment.js库 moment.js一个JavaScript的日期处理库。它提供了一系列丰富的方法,可以方便地处理时间和日期之间的转换和计算。 要使用moment.js获取当前时间向前推三个时间,只需要使用它提供的subtract()方法即可。 代码示例: ```javascript var now = moment(); var threeMonthsAgo = moment().subtract(3, 'months'); console.log(threeMonthsAgo); ``` 在控制台输出的结果中,可以看到日期已经向前推了三个。 需要注意的是,使用moment.js需要先引入moment.js库文件,可以从官网下载并引入到页面中。 以上是JavaScript获取当前时间向前推三个的两种实现方式,可以根据实际需要选择适合的方法。同时,还需要注意处理时间的时区问题,以确保在多个时区中都能正确显示时间
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值