Ahm*_*med 1 javascript time timeout alarm
我完全不解.为什么这个程序没有使用我得到的延迟编号,我将其命名为"结果".它应该按用户发布的未来日期减去当前时间.这最终会成为一种警报.看看,运行代码.
// Set a future time you want the alert() function to go off
var eta_ms = new Date(2017, 1, 26, 17, 06).getTime();
document.write(Date.now() + "<br />");
document.write(eta_ms + "<br />");
var result = eta_ms - Date.now();
document.write("The Delay: " + result + "<br />" );
document.write(result + "<br />");
document.write(typeof (result) + "<br />");
setTimeout(function(){ alert("Hello"); }, result);Run Code Online (Sandbox Code Playgroud)
只需设置第0个月(日期构造函数的第二个参数),然后就可以正常工作了.
请注意,当您在23:35(26.01.2017)之后运行此代码时,结果将变为负数,因为您必须始终设置eta_ms.
希望这可以帮助:
var eta_ms = new Date(2017, 0, 26, 23, 35).getTime();
document.write(Date.now() + "<br />");
document.write(eta_ms + "<br />");
var result = eta_ms - Date.now();
document.write("The Delay: " + result + "<br />" );
document.write(result + "<br />");
document.write(typeof (result) + "<br />");
setTimeout(function(){ alert("Hello"); }, result);
Run Code Online (Sandbox Code Playgroud)
为避免设置第0个月,更好的方法可能是以另一种方式设置未来时间(eta_ms),以便有人只需更改此minutesInFuture变量即可更改eta_ms.以这种方式,eta_ms不仅限于1月:
var minutesInFuture = 5;
var eta_ms = new Date().getTime();
eta_ms = eta_ms + minutesInFuture * 1000 * 60;
document.write(Date.now() + "<br />");
document.write(eta_ms + "<br />");
var result = eta_ms - Date.now();
document.write("The Delay: " + result + "<br />" );
document.write(result + "<br />");
document.write(typeof (result) + "<br />");
setTimeout(function(){ alert("Hello"); }, result);
Run Code Online (Sandbox Code Playgroud)
(第0个月)这里的州