我完全不解.为什么这个程序没有使用我得到的延迟编号,我将其命名为"结果".它应该按用户发布的未来日期减去当前时间.这最终会成为一种警报.看看,运行代码.
// 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() + "
");
document.write(eta_ms + "
");
var result = eta_ms - Date.now();
document.write("The Delay: " + result + "
" );
document.write(result + "
");
document.write(typeof (result) + "
");
setTimeout(function(){ alert("Hello"); }, result);
只需设置第0个月(日期构造函数的第二个参数),然后就可以正常工作了.
请注意,当您在23:35(26.01.2017)之后运行此代码时,结果将变为负数,因为您必须始终设置eta_ms.
希望这可以帮助:
var eta_ms = new Date(2017, 0, 26, 23, 35).getTime(); document.write(Date.now() + "
"); document.write(eta_ms + "
"); var result = eta_ms - Date.now(); document.write("The Delay: " + result + "
" ); document.write(result + "
"); document.write(typeof (result) + "
"); setTimeout(function(){ alert("Hello"); }, result);
为避免设置第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() + "
"); document.write(eta_ms + "
"); var result = eta_ms - Date.now(); document.write("The Delay: " + result + "
" ); document.write(result + "
"); document.write(typeof (result) + "
"); setTimeout(function(){ alert("Hello"); }, result);
(第0个月)这里的州