我正在使用javaScript创建一个简单的Web应用程序。在一个部分,我希望在日期变化时触发事件(即1月4日变为1月5日)。
这就是我在做的事情:
window.onload=function(){
var today = new Date();
var tommorow = new Date(today.getFullYear(),today.getMonth(),today.getDate()+1);
var timeToMidnight = (tommorow-today)/60;
var timer = setTimeout(function(){console.log("this");},timeToMidnight);
}
无论如何,我面临的问题是该函数在实际午夜之前大约30-40秒被执行。怎么了?我该怎么办?
答案 0 :(得分:3)
将日期转换为数字时,您会获得毫秒数(请参阅Date.prototype.valueOf)。
That's the unit required by setTimeout
。所以你不必分开。
更改
var timeToMidnight = (tommorow-today)/60;
到
var timeToMidnight = (tommorow-today);