【发布时间】:2018-08-16 09:11:42
【问题描述】:
我编写了以下脚本来查找两个时间值之间的时间差,并在差为 10 分钟时执行一个函数。脚本中变量h1、m1、s1为第一次的时、分、秒,h2、s2、m2为第二次。
例如
h1 = 10
m1 = 55
s1 = 00
h2 = 11
m2 = 05
s2 = 00
脚本当前检查 h1 是否等于 h2。如果是,那么它会找到 m2 和 m1 之间的差异。如果该差值为 10,则执行该函数。
//........setting the current time........//
var d1 = new Date();
var h1 = d1.getHours();
var m1 = d1.getMinutes();
var s1 = d1.getSeconds();
//if the hour, minute or second is a single digit number, add a zero before it//
if (h1 < 10) {
h1 = "0"+ h1;
}
if (m1 < 10) {
m1 = "0" + m1;
}
if (s1 < 10) {
s1 = "0" + s1;
}
var now = h1 + ":" + m1 + ":" + s1;
//........setting the target time........//
var d2 = new Date(2018, 8, 16, 11, 05, 00);
var h2 = d2.getHours();
var m2 = d2.getMinutes();
var s2 = d2.getSeconds();
//if the hour, minute or second is a single digit number, add a zero before it//
if (h2 < 10) {
h2 = "0" + h2;
}
if (m2 < 10) {
m2 = "0" + m2;
}
if (s2 < 10) {
s2 = "0" + s2;
}
var time = h2 + ":" + m2 + ":" + s2;
//........Calculating the difference........//
if (h1 == h2) {
var diff = m2 - m1;
if ((diff == 10)) {
document.getElementById("diff").innerHTML = diff;
move();
}
}
但是,我意识到这并不总是有效,就像上面的示例时间一样。当小时值不同时,脚本不会计算时间差。有什么办法可以克服这个吗?
【问题讨论】:
-
为什么不将两组值转换为一个公分母(比如秒)并获得差异?如果超过 600 秒,则超过 10 分钟。
-
您可以将两者都转换为纪元秒,然后再取差值。它更简单,代码更少
标签: javascript html date time