原生js获取一段时间内每隔几分钟的时间数组
姊妹篇
原生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 2019-04-12 17:00:00 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获取一段时间内每隔几分钟的时间数组相关推荐
- js获取一段时间内工作日的天数
代码 function workday_count(start, end) {let count = 0;let current = start;while (current< end) {co ...
- [完美]原生JS获取浏览器版本判断--支持Edge,IE,Chrome,Firefox,Opera,Safari,以及各种使用Chrome和IE混合内核的浏览器...
[完美]原生JS获取浏览器版本判断--支持Edge,IE,Chrome,Firefox,Opera,Safari,以及各种使用Chrome和IE混合内核的浏览器 原文:[完美]原生JS获取浏览器版本判 ...
- oracle获取一段时间内所有的小时、天、月
原文链接:http://blog.csdn.net/ld422586546/article/details/9626921/ 点击阅读原文 ------------------------------ ...
- js取iframe 上级页面_原生js获取iframe中dom元素--父子页面相互获取对方dom元素的方法...
用原生js在父页面获取iframe子页面的元素,以及在子页面获取父页面元素,这是平时经常会用到的方法,这里写一个例子来总结下: 1.父页面(demo.html),在父页面修改子页面div的背景色为灰色 ...
- 原生js获取宽高与jquery获取宽高的方法的关系
说明:1.因为获取高度的情况跟获取宽度的情况一样,所以以下只说获取宽度的情况. 2.以下所说的所有方法与属性所返回的值都是不带单位的. 3.为了方便说明,以下情况采用缩写表示: obj -> ...
- 获取html下拉菜单selected,原生js获取select下拉框的selected的option项
一. 使用 原生js,获取select标签下属性有selected的option项. 先写一个select标签如下: TEXT-aaaaa TEXT-bbbbb 原生js获取select标签这个 对象 ...
- java 周几_java根据日期获取周几和获取某段时间内周几的日期
整理两个日期的方法. 根据日期获取当天是周几 /** * 根据日期获取当天是周几 * @param datetime 日期 * @return 周几 */ public static String d ...
- 原生JS获取body
原生js获取body 的方法 这节课我们来说说如何在js中获取body的来对html中的body进行一系列操作,给大家总结了两种方法 第一种: let s = `hello` document.get ...
- 原生 js 获取所有兄弟节点
使用原生 js 获取所有的兄弟节点 // 封装成函数 function get_Siblings(elem) {let sibArr = []let allChilds = elem.parentNo ...
最新文章
- pandas数据清洗(缺失值、异常值和重复值处理)
- python发挥_充分发挥 Python 的威力:用最简单的方法打造互联互通的智能产品
- POJ1719行列匹配
- 地图投影系列介绍(一)----地球空间模型
- BZOJ 1845三角形面积并
- google 确定某点海拔高_一份“高投资回报率”的用户体验度量方法指南
- python3处理大文件
- 【动态规划】数位DP入门题:不要62
- 51单片机(一)—— 51单片机简介
- Google退出中国 Mark
- 计算机考研复试笔试题库,苏州大学计算机考研复试真题和复试参考书目
- t6服务器虚拟打印机,priPrinter Professional(免费的虚拟打印机) V6.6.0 中文免费版
- win10 OCX控件的注册
- 52单片机课程设计——利用52单片机的智能窗帘设计论文+源码
- FTP传输大文件丢包损坏严重,怎么解决?
- 记录一些密码学中常用符号
- win2008R2 不能访问局域网共享\局域网共享中无本机,解决办法.
- 低功耗蓝牙BLE之连接事件、连接参数和更新方法(程序解读)
- 【已解决】什么是心跳包?
- 千与千寻无脸男的真面目 无脸男为什么对千寻好