jquery 计算日期

jquery 计算日期

       // 计算日期  
       function _calculateDate(wantDate){

        var newWantDate = {};
        var currentTime = new Date();

        // 今日
        var currentDate = timeStamp2String(currentTime);
        if (wantDate == "thisDay") {
            newWantDate[0] = currentDate;
            newWantDate[1] = currentDate;

            return newWantDate;
        }
        //alert(currentDate);

        // 昨日
        var lastDate = timeStamp2String(_addDate('4','-1',currentTime));
        if (wantDate == "lastDay") {
            newWantDate[0] = lastDate;
            newWantDate[1] = lastDate;

            return newWantDate;
        }
        //alert(lastDate);

        var currentWeek = _getCurrentWeek();
        // 本周第一天
        var currentWeekFirstDate = timeStamp2String(currentWeek[0]); 
        //alert(currentWeekFirstDate)
        // 本周最后一天
        var currentWeekEndDate = timeStamp2String(currentWeek[1]); 
        //alert(currentWeekEndDate)
        if (wantDate == "thisWeek") {
            newWantDate[0] = currentWeekFirstDate;
            newWantDate[1] = currentWeekEndDate;

            return newWantDate;
        }

        // 上周第一天
        var lastWeekFirstDate = timeStamp2String(_addDate('4','-7',currentWeek[0]));
        //alert(lastWeekFirstDate)
        // 上周最后一天
        var lastWeekEndDate = timeStamp2String(_addDate('4','-1',currentWeek[0]));
        //alert(lastWeekEndDate)
        if (wantDate == "lastWeek") {
            newWantDate[0] = lastWeekFirstDate;
            newWantDate[1] = lastWeekEndDate;

            return newWantDate;
        }

        // 前两周第一天
        var last2WeekFirstDate = timeStamp2String(_addDate('4','-14',currentWeek[0]));

        if (wantDate == "last2Week") {
         newWantDate[0] = last2WeekFirstDate;
            newWantDate[1] = lastWeekEndDate;

            return newWantDate;
        }


        var datePartArray = currentDate.split('-');
        // 本月开始的第一天
        var curMonthFirstDay = new Date(datePartArray[0],datePartArray[1]-1);
        var curMonthFirstDate = timeStamp2String(curMonthFirstDay);
        //alert(curMonthFirstDate);
        //下月开始的第一天
        var nextMonthFirstDay = _addDate('5','1',curMonthFirstDay);
        //本月最后一天
        var curMonthEndDay = new Date(nextMonthFirstDay.getTime()-1);
        var curMonthEndDate = timeStamp2String(curMonthEndDay);
        //alert(curMonthEndDate);
        if (wantDate == "thisMonth") {
            newWantDate[0] = curMonthFirstDate;
            newWantDate[1] = curMonthEndDate;
            return newWantDate;
        }

        // 上月开始的第一天
        var lastMonthFirstDay = _addDate('5','-1',curMonthFirstDay);
        var lastMonthFirstDate = timeStamp2String(lastMonthFirstDay);
        //alert(lastMonthFirstDate);

        // 上月最后一天
        var lastMonthEndDay = new Date(curMonthFirstDay.getTime()-1);
        var lastMonthEndDate = timeStamp2String(lastMonthEndDay);
        //alert(lastMonthEndDate);
        if (wantDate == "lastMonth") {
            newWantDate[0] = lastMonthFirstDate;
            newWantDate[1] = lastMonthEndDate;
            return newWantDate;
        }

        // 最近三个月的第一天
        var last3MonthFirstDay = _addDate('5','-2',curMonthFirstDay);
        var last3MonthFirstDate = timeStamp2String(last3MonthFirstDay);
        if (wantDate == "last3Month") {
         newWantDate[0] = last3MonthFirstDate;
            newWantDate[1] = curMonthEndDate;
            return newWantDate;
        }

        // 最近半年的第一天
        var last6MonthFirstDay = _addDate('5','-5',curMonthFirstDay);
        var last6MonthFirstDate = timeStamp2String(last6MonthFirstDay);
        if (wantDate == "last6Month") {
         newWantDate[0] = last6MonthFirstDate;
            newWantDate[1] = curMonthEndDate;
            return newWantDate;
        }

        // 最近一年的第一天
        var last12MonthFirstDay = _addDate('5','-11',curMonthFirstDay);
        var last12MonthFirstDate = timeStamp2String(last12MonthFirstDay);
        if (wantDate == "last12Month") {
         newWantDate[0] = last12MonthFirstDate;
            newWantDate[1] = curMonthEndDate;
            return newWantDate;
        }

        //下下月开始的第一天
        var nnextFirstDay=_addDate('5','2',curFirstDay);

        //下月最后一天
        var nextEndDay= new Date(nnextFirstDay.getTime()-1);
    }

    // 计算本周
    function _getCurrentWeek(){
        //获取当前时间  
        var currentDate = new Date(); 
        //返回date是一周中的某一天  
        var week=currentDate.getDay(); 

        //一天的毫秒数  
        var millisecond=1000*60*60*24; 
        //减去的天数  
        var minusDay=week!=0?week-1:6; 

        //本周 周一  
        var monday=new Date(currentDate.getTime()-(minusDay*millisecond)); 
        //本周 周日  
        var sunday=new Date(monday.getTime()+(6*millisecond)); 

        var thisWeek = {};
        thisWeek[0] = monday;
        thisWeek[1] = sunday;

        return thisWeek;
    }

    // 日期格式化
    function timeStamp2String(time){ 
        var datetime = new Date();     
        datetime.setTime(time); 
        var year = datetime.getFullYear();     
        var month = datetime.getMonth() + 1 < 10 ? "0" + (datetime.getMonth() + 1) : datetime.getMonth() + 1;    
        var date = datetime.getDate() < 10 ? "0" + datetime.getDate() : datetime.getDate();    
        //var hour = datetime.getHours()< 10 ? "0" + datetime.getHours() : datetime.getHours();    
        //var minute = datetime.getMinutes()< 10 ? "0" + datetime.getMinutes() : datetime.getMinutes();    
        //var second = datetime.getSeconds()< 10 ? "0" + datetime.getSeconds() : datetime.getSeconds();    
        //return year + "-" + month + "-" + date+" "+hour+":"+minute+":"+second; 
        return year + "-" + month + "-" + date; 
    }
    // 日期时间差计算
    function _addDate(type, NumDay, vdate){
        var date=new Date(vdate);
        type = parseInt(type); //类型 
        var lIntval = parseInt(NumDay);//间隔
            switch(type){
                 case 7 ://年
                  date.setYear(date.getYear() + lIntval);
                  break;
                 case 6 ://季度
                  date.setMonth(date.getMonth() + (lIntval * 3) );
                  break;
                 case 5 ://月
                  date.setMonth(date.getMonth() + lIntval);
                  break;
                 case 4 ://天
                  date.setDate(date.getDate() + lIntval);
                  break;
                 case 3 ://时
                  date.setHours(date.getHours() + lIntval);
                  break;
                 case 2 ://分
                  date.setMinutes(date.getMinutes() + lIntval);
                  break;
                 case 1 ://秒
                  date.setSeconds(date.getSeconds() + lIntval);
                  break;
                 default:
            }
        return date;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值