我想在网页内的console.log
内做一些事情(目前只是通过写setInterval
进行测试)。当间隔周期时,我想传递间隔的先前值。我目前正在尝试执行以下操作:
setInterval(function() {
var lastTime, shiftTime = new Date();
var myTimeString;
var lastTimeString;
myTimeString = ('00' + (shiftTime.getHours())).slice(-2) +":"+('00' + (shiftTime.getMinutes())).slice(-2) + ":"+ ('00' + (shiftTime.getSeconds())).slice(-2) + "."+ ('000' + (shiftTime.getMilliseconds())).slice(-3);
newInterval = myTimeString;
lastTime = lastTime - 300000;
lastTimeString = ('00' + (lastTime.getHours())).slice(-2) +":"+('00' + (lastTime.getMinutes())).slice(-2) + ":"+ ('00' + (lastTime.getSeconds())).slice(-2) + "."+ ('000' + (lastTime.getMilliseconds())).slice(-3);
lastInterval = lastTimeString;
console.log("lastInterval = " + lastInterval + " thisInterval = " + newInterval);
}, 300000);
上面说的是lastTime.getHours() is not a function
。
如何从setInterval
函数中获取最后一个区间值(我最终需要日期和时间)?
有没有比我接近它更好的方法呢?
谢谢!
答案 0 :(得分:4)
首先,请务必初始化lastTime:
var lastTime = new Date(), shiftTime = new Date();
然后改变
lastTime = lastTime - 300000;
到
lastTime = new Date(lastTime - 300000);
以便在删除Date
ms。
300000
个对象
答案 1 :(得分:4)
任何需要在间隔之间保持不变的变量都应该在interval函数之外声明,这样它们就不会被范围杀死。 e.g。
var valueToKeep;
setInterval(function(){
var tempValue;
// do something
valueTokeep - tempValue;
}, 1000);
@dystroy是正确的;如果你想使用日期方法,最好建立一个日期对象:
var foo = 123456;
var bar = new Date(ms), // gives you date object
baz = foo - 86400; // just gives you a number