某年的第几个月或第几个周换算为具体的日期 -- vue

某年的第几个月或第几个周换算为具体的日期 – vue

2020年的第2月:

在这里插入图片描述
输出为:在这里插入图片描述

2020第8周在这里插入图片描述

换算为:
在这里插入图片描述

代码如下:

// 获取统计周期范围
    getDayFanWei(year, weekOrMonth, type) {
      if (weekOrMonth != "") {
        let startDate = '';
        let endDate = '';
        if (type == 1) {
          let day = 7 * (weekOrMonth - 1);
          // 那一年第一天是星期几
          let firstDay = new Date(year + "-01-01");
          let yearFirstDay = firstDay.getDay() || 7;
          if (yearFirstDay == 1) {
            startDate = this.dateAddDays(year + "-01-01", day);
            endDate = this.dateAddDays(year + "-01-01", day + 6);
          }
          else {
            day = day + (8 - yearFirstDay);
            startDate = this.dateAddDays(year + "-01-01", day);
            endDate = this.dateAddDays(year + "-01-01", day + 6);
          }
        } else {
          if (weekOrMonth < 10) {
            startDate = year + "-0" + weekOrMonth + "-01";
          }
          else {
            startDate = year + "-" + weekOrMonth + "-01";
          }
          let dateC = new Date(year + "-" + weekOrMonth + "-01");
          // 获取天数
          let days = new Date(year, weekOrMonth, 0).getDate();
          if (days < 10) {
            days = "0" + days;
          }
          if (weekOrMonth < 10) {
            weekOrMonth = "0" + weekOrMonth;
          }
          endDate = year + "-" + weekOrMonth + "-" + days;
        }
        return startDate + "~" + endDate ;
        // return startDate + " 00:00:00~" + endDate + " 23:59:59";
      }
    },
    dateAddDays(dataStr, dayCount) {
      let strdate = dataStr; // 日期字符串
      let isdate = new Date(strdate.replace(/-/g, "/"));  // 把日期字符串转换成日期格式
      isdate = new Date((isdate / 1000 + (86400 * dayCount)) * 1000);  // 日期加1天
      let month = isdate.getMonth() + 1;
      let day = isdate.getDate();
      if (month < 10) {
        month = "0" + month;
      }
      if (day < 10) {
        day = "0" + day;
      }
      let pdate = isdate.getFullYear() + "-" + month + "-" + day;   // 把日期格式转换成字符串
      return pdate;
    },

调用:

// year:年份;monthFirst:开始时间; statisticType:0(月),1(周)
const startTimeStr = this.getDayFanWei(this.year,
        this.monthFirst, this.statisticType);
const endTimeStr = this.getDayFanWei(this.year,
 		this.monthEnd, this.statisticType);
        
statisticBeginTime = startTimeStr.split('~')[ 0 ], // 开始时间
statisticEndTime = endTimeStr.split('~')[ 1 ], // 结束时间
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值