版权声明:本篇博客内容来源于本人亲身经历,属于本人原创,转载请注明出处,感谢分享~~ 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 2019-04-12 17:00:00
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>
有什么问题欢迎留言