jQuery - 从setInterval中获取优先值

时间:2013-06-12 17:20:30

标签: jquery datetime setinterval

我想在网页内的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函数中获取最后一个区间值(我最终需要日期和时间)?

有没有比我接近它更好的方法呢?

谢谢!

2 个答案:

答案 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