6-11 关于Date对象的各种操作

项目中用到的总结

1.用js获取当前月份的天数
关键点:日期设为0
使用setDate设为0,即可返回当月的天数

2.js计算两个日期间的所有日期
其中还发现了个BUG,当获取到月的时候,需要数字+1,不然会出现010这种情况。第三个获取间隔月的函数即可同理推导出

while (endTime.getTime() - startTime.getTime()>=0)

这个循环条件,当为0时,包括结束日期(月)

  transDate(datestr) {
    let temp = datestr.split("-");
    if (temp[1] === "01") {
      temp[0] = parseInt(temp[0], 10) - 1;
      temp[1] = "12";
    } else {
      temp[1] = parseInt(temp[1], 10) - 1;
    }
    //new Date()的月份入参实际都是当前值-1
    let date = new Date(temp[0], temp[1], temp[2]);
    return date;
  }
  /**
   ***获取两个日期间的所有日期
   ***默认start<end
   **/
  getDiffDate(start, end) {
    let startTime = this.transDate(start);
    let endTime = this.transDate(end);
    let dateArr = [];
    //循环到结束日期
    while (endTime.getTime() - startTime.getTime()>=0) {
      let year = startTime.getFullYear();
      let month =
      (startTime.getMonth()+1).toString().length=== 1
          ? "0" + (parseInt(startTime.getMonth().toString(), 10) + 1)
          : startTime.getMonth() + 1;
      let day =
        startTime.getDate().toString().length === 1
          ? "0" + startTime.getDate()
          : startTime.getDate();
      dateArr.push(year + "-" + month + "-" + day);
      startTime.setDate(startTime.getDate() + 1);
    }
    return dateArr;
  }
  //同理可得获取两个日期间的所有月
  getDiffMonth(start, end) {
    let startTime = this.transDate(start);
    let endTime = this.transDate(end);
    let dateArr = [];
    //循环到结束日期
    while (endTime.getTime() - startTime.getTime()>=0) {
      let year = startTime.getFullYear();
      let month =
        (startTime.getMonth()+1).toString().length=== 1
          ? "0" + (parseInt(startTime.getMonth().toString(), 10) + 1)
          : startTime.getMonth() + 1;
      dateArr.push(year + "-" + month);
      startTime.setMonth(startTime.getMonth() + 1);
    }
    return dateArr;
  }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值