JS 获取输入年份和周数的开始日期和结束日期

getWeekDates(year, week) {

      if(this.isDateObject(year)){

        year = year.getFullYear();

      }else{

        year = this.mainData.warehouseYear.toString()

        year = year.substr(0,4);

      }

      var januaryFirst = new Date(year, 0, 1);

      var firstDay = januaryFirst.getDay();

      var weekStartDate = new Date(year, 0, (1 + (week - 1) * 7) - firstDay);

      var weekEndDate = new Date(year, 0, (1 + (week - 1) * 7) - firstDay + 6);

      var yearStart = weekStartDate.getFullYear();

      var yearEnd = weekEndDate.getFullYear();

      debugger

      if(yearStart != yearEnd){

        var mothStart = weekStartDate.getMonth()+1;

        var mothEnd = weekEndDate.getMonth()+1;

        if(mothStart == 12 && yearStart == year){

          //最后一周如果跨年,就取最后一天拼接

          var lastDay = new Date(year, 11, 31); // 11代表12月

          var datestr = weekStartDate.getFullYear() + "-" + mothStart + "-" + weekStartDate.getDate()  + " To " +

                        lastDay.getFullYear() +"-" + 12 + "-" + lastDay.getDate();

          console.log(datestr);

          return  datestr;

        }else if(mothEnd == 1 && yearStart != year){

          //第一周跨年的情况,取第一天和往后7天

          var mothStart = januaryFirst.getMonth()+1;

          //计算januaryFirst 往后7天日期

          var januaryFirstLast7 = new Date(year, 0, 7);

          var datestr = januaryFirst.getFullYear() + "-" + mothStart + "-" + januaryFirst.getDate()  + " To " +

                      januaryFirstLast7.getFullYear() +"-" + mothStart + "-" + januaryFirstLast7.getDate();

          console.log(datestr);

          return  datestr;

        }

      }else{

        var mothStart = weekStartDate.getMonth()+1;

        var mothEnd = weekEndDate.getMonth()+1;

        var datestr = weekStartDate.getFullYear() + "-" + mothStart + "-" + weekStartDate.getDate()  + " To " +

                    weekEndDate.getFullYear() +"-" + mothEnd + "-" + weekEndDate.getDate();

        console.log(datestr);

        return  datestr;

      }

    },

isDateObject(obj) {

      return obj instanceof Date;

    }

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值