原生js获取一段时间内每隔几分钟的时间数组

版权声明:本篇博客内容来源于本人亲身经历,属于本人原创,转载请注明出处,感谢分享~~ https://blog.csdn.net/hl_qianduan/article/details/89278707

情况:

项目中有这么一个需求,输入开始时间、结束时间、时间间隔,获取一段时间内每隔几分钟的时间数组

接下来我必须现在网上找找有没有类似的稍微改改就好了,想得美,whatFuck,为什么都是写的sql语句,Emmm。

算了,求人不如靠己,索性自己写  

 效果如下:

代码如下: 

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
  </head>
  <body>
    输入开始时间、结束时间、时间间隔,计算这段时间内每个时间间隔的数据<br /><br />
    例如<br /><br />
    开始时间:2019.04.12 16:00:00 结束时间:2019.04.12 18:00:00 时间间隔:30<br /><br />
    产生 2019-04-12 17:30:00 &nbsp;&nbsp;&nbsp;&nbsp; 2019-04-12 17:00:00
    &nbsp;&nbsp;&nbsp;&nbsp; 2019-04-12 16:30:00
    <br /><br />
    默认设置:<br /><br />
    开始时间:当前时间 结束时间:当前时间前一小时 时间间隔 30分钟<br /><br />
    <input id="a" placeholder="开始日期(年月日时分秒)" /><input
      id="b"
      placeholder="结束时间(年月日时分秒)"
    /><input id="c" placeholder="时间间隔(分钟)" /><button
      type="button"
      id="button"
    >
      按钮
    </button>
    <br />
    <ul>
      <h4>展示区域</h4>
    </ul>
    <script>
      function getDateArray(startDate, endDate, space) {
        if (!endDate) {
          endDate = new Date();
        }
        if (!startDate) {
          startDate = new Date(new Date().getTime() - 1 * 60 * 60 * 1000);
        }
        if (!space) {
          space = 30 * 60 * 1000;
        } else {
          space = space * 60 * 1000;
        }
        var endTime = endDate.getTime();
        var startTime = startDate.getTime();
        var mod = endTime - startTime;
        if (mod <= space) {
          return;
          alert("时间太短");
        }
        var dateArray = [];
        while (mod - space >= space) {
          var d = new Date();
          d.setTime(endTime - space);
          dateArray.push(d);
          mod = mod - space;
          endTime = endTime - space;
        }
        return dateArray;
      }

      var a = document.getElementById("a");
      var b = document.getElementById("b");
      var c = document.getElementById("c");
      document.getElementById("button").onclick = function() {
        if (document.querySelector("li")) {
          document
            .querySelector("ul")
            .removeChild(document.querySelector("li"));
        }
        var aa = new Date(a.value);
        var bb = new Date(b.value);
        if (!a.value) {
          var qqq = getDateArray();
        } else {
          var qqq = getDateArray(aa, bb, c.value);
        }
        for (var i = qqq.length - 1; i >= 0; i--) {
          var node = document.createElement("li");
          var textnode = document.createTextNode(nowtime(qqq[i]));
          node.appendChild(textnode);
          document.querySelector("ul").appendChild(node);
        }
      };

      function nowtime(dt) {
        return (
          dt.getFullYear() +
          "-" +
          (dt.getMonth() + 1 < 10
            ? "0" + (dt.getMonth() + 1)
            : dt.getMonth() + 1) +
          "-" +
          (dt.getDate() < 10 ? "0" + dt.getDate() : dt.getDate()) +
          " " +
          (dt.getHours() < 10 ? "0" + dt.getHours() : dt.getHours()) +
          ":" +
          (dt.getMinutes() < 10 ? "0" + dt.getMinutes() : dt.getMinutes()) +
          ":" +
          (dt.getSeconds() < 10 ? "0" + dt.getSeconds() : dt.getSeconds())
        );
      }
    </script>
  </body>
</html>

 有什么问题欢迎留言

灵感来源 https://bbs.csdn.net/topics/390988436

猜你喜欢

转载自blog.csdn.net/hl_qianduan/article/details/89278707
今日推荐