姊妹篇

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

情况:

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

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

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

修复bug,没有开头结尾时间

效果如下:

代码如下: 

<!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>js获取时间段</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="开始日期(年月日时分秒)" value="2019-04-12 16:00:00" /><input id="b" placeholder="结束时间(年月日时分秒)"value="2019-04-12 18:00:00" /><input id="c" placeholder="时间间隔(分钟)" value="30" /><button type="button"id="button">按钮</button><br /><h4>展示区域</h4><ul></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) {alert("时间太短");return;}var dateArray = [];while (mod >= space) {var d = new Date();d.setTime(startTime + space);dateArray.push(d);mod = mod - space;startTime = startTime + space;}var end = endDate.getTime();var start = startDate.getTime();dateArray.unshift(new Date(start)); // 插入开头时间// 正序return dateArray.sort(function (a, b) {return Date.parse(b) - Date.parse(a);});}var a = document.getElementById("a");var b = document.getElementById("b");var c = document.getElementById("c");document.getElementById("button").onclick = function () {document.querySelector("ul").innerHTML = "";var aa = new Date(a.value);var bb = new Date(b.value);if (!a.value) {var result = getDateArray();} else {var result = getDateArray(aa, bb, c.value);}for (var i = result.length - 1; i >= 0; i--) {var node = document.createElement("li");var textnode = document.createTextNode(timeFormat(result[i]));node.appendChild(textnode);document.querySelector("ul").appendChild(node);}};// 时间格式化function timeFormat(dt) {return (spliceZero(dt.getFullYear()) + '-' + spliceZero(dt.getMonth() + 1) + '-' + spliceZero(dt.getDate()) + " " + spliceZero(dt.getHours()) + ":" + spliceZero(dt.getMinutes()) + ":" + spliceZero(dt.getSeconds()));}// 时间格式化、1位数时,前面拼接0function spliceZero(i) {if (i.toString().length == 1) {i = "0" + i;}return i;}</script>
</body></html>

有什么问题欢迎留言

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

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

  1. js获取一段时间内工作日的天数

    代码 function workday_count(start, end) {let count = 0;let current = start;while (current< end) {co ...

  2. [完美]原生JS获取浏览器版本判断--支持Edge,IE,Chrome,Firefox,Opera,Safari,以及各种使用Chrome和IE混合内核的浏览器...

    [完美]原生JS获取浏览器版本判断--支持Edge,IE,Chrome,Firefox,Opera,Safari,以及各种使用Chrome和IE混合内核的浏览器 原文:[完美]原生JS获取浏览器版本判 ...

  3. oracle获取一段时间内所有的小时、天、月

    原文链接:http://blog.csdn.net/ld422586546/article/details/9626921/ 点击阅读原文 ------------------------------ ...

  4. js取iframe 上级页面_原生js获取iframe中dom元素--父子页面相互获取对方dom元素的方法...

    用原生js在父页面获取iframe子页面的元素,以及在子页面获取父页面元素,这是平时经常会用到的方法,这里写一个例子来总结下: 1.父页面(demo.html),在父页面修改子页面div的背景色为灰色 ...

  5. 原生js获取宽高与jquery获取宽高的方法的关系

    说明:1.因为获取高度的情况跟获取宽度的情况一样,所以以下只说获取宽度的情况.  2.以下所说的所有方法与属性所返回的值都是不带单位的.  3.为了方便说明,以下情况采用缩写表示:  obj -> ...

  6. 获取html下拉菜单selected,原生js获取select下拉框的selected的option项

    一. 使用 原生js,获取select标签下属性有selected的option项. 先写一个select标签如下: TEXT-aaaaa TEXT-bbbbb 原生js获取select标签这个 对象 ...

  7. java 周几_java根据日期获取周几和获取某段时间内周几的日期

    整理两个日期的方法. 根据日期获取当天是周几 /** * 根据日期获取当天是周几 * @param datetime 日期 * @return 周几 */ public static String d ...

  8. 原生JS获取body

    原生js获取body 的方法 这节课我们来说说如何在js中获取body的来对html中的body进行一系列操作,给大家总结了两种方法 第一种: let s = `hello` document.get ...

  9. 原生 js 获取所有兄弟节点

    使用原生 js 获取所有的兄弟节点 // 封装成函数 function get_Siblings(elem) {let sibArr = []let allChilds = elem.parentNo ...

最新文章

  1. pandas数据清洗(缺失值、异常值和重复值处理)
  2. python发挥_充分发挥 Python 的威力:用最简单的方法打造互联互通的智能产品
  3. POJ1719行列匹配
  4. 地图投影系列介绍(一)----地球空间模型
  5. BZOJ 1845三角形面积并
  6. google 确定某点海拔高_一份“高投资回报率”的用户体验度量方法指南
  7. python3处理大文件
  8. 【动态规划】数位DP入门题:不要62
  9. 51单片机(一)—— 51单片机简介
  10. Google退出中国 Mark
  11. 计算机考研复试笔试题库,苏州大学计算机考研复试真题和复试参考书目
  12. t6服务器虚拟打印机,priPrinter Professional(免费的虚拟打印机) V6.6.0 中文免费版
  13. win10 OCX控件的注册
  14. 52单片机课程设计——利用52单片机的智能窗帘设计论文+源码
  15. FTP传输大文件丢包损坏严重,怎么解决?
  16. 记录一些密码学中常用符号
  17. win2008R2 不能访问局域网共享\局域网共享中无本机,解决办法.
  18. 低功耗蓝牙BLE之连接事件、连接参数和更新方法(程序解读)
  19. 【已解决】什么是心跳包?
  20. 千与千寻无脸男的真面目 无脸男为什么对千寻好

热门文章

  1. Gartner 2019年EPP(终端防护)魔力象限(Endpoint protection platforms)
  2. Qt之如何读取Excel表格数据
  3. Modbus RTU笔记总结
  4. Process on绘制er图、扩大界面
  5. 等额本金和等额本息是怎么算出来的
  6. Druid middleManager如何获取task信息并启动Peon进程
  7. 还在使用BeanUtils.copyProperties()? 来看看MapStruct,强大五倍
  8. 准备就绪的定义被认为是有害的
  9. 失落的帝国:盛大业务大收缩
  10. 怎么自测植物神经紊乱