我正在使用PIR传感器来检测环境中的运动。当有运动时,PIR传感器将值1发送到控制台。一旦检测到没有动作,它就会每秒通过setInterval()多次转到0。现在,在那个时间点,我想检测0到0的时间,然后在10分钟时做一些事情。我想在动作开始时做new Date().getMinutes();
一次,然后在动作停止时再做一次并比较这两个。我是在正确的轨道上吗?
答案 0 :(得分:0)
我最后在setInterval()之外添加var i = 0;
并在if (myDigitalValue === 0)
循环内保持i++
,直到达到我要查找的秒数以及等于我跑了一个方法。
答案 1 :(得分:0)
(new Date()).getMinutes()
将返回"分钟"当前时间的一部分,即分针指向时钟的位置。您可能想要的是从特定点开始经过的绝对时间。幸运的是,有一种简单的方法可以确定与Date对象(或其中两个)的时差:
begin = new Date();
. . . time passes . . .
end = new Date();
timeDiffInMilliseconds = end - begin;
换句话说,当你从另一个{1}}中减去一个Date
个对象时,你会得到毫秒级的时差(对于多态运算符来说很苛刻)。
这样做的一个优点是,如果您想要更改测试的频率或时间长度,您只需更改相关的频率即可。使用您描述的循环,两者不必要地连接在一起,这可能更容易出错。