检查时差是否小于 1 秒



在我的javascript项目中,我想检查时差是否小于1秒。我用时刻来获得这种差异。这是我为实现它而编写的功能。

const withinOneSecond = (time) => {
const currentTime = moment();
return time + 1000 < currentTime;
};

但这并没有按预期工作。如何检查给定时间是否在当前时间的一秒内?

您可以使用moment#diff. 例如,我在日期中添加了一秒,并将.diff传递seconds的差异作为第二个参数应该以秒为单位返回差异

var a = moment();
var b = moment().add(1, 'seconds');
console.log(b.diff(a, 'seconds'))
<script src="https://momentjs.com/downloads/moment.js"></script>

支持的测量值包括yearsmonthsweeksdayshoursminutesseconds。这里

对于您的特定情况,您应该执行以下操作

const withinOneSecond = (time) => {
const currentTime = moment();
return currentTime.diff(time, 'seconds')  == 1
};
var time = moment().add(1, 'seconds');
let results = withinOneSecond(time);
console.log(results);
<script src="https://momentjs.com/downloads/moment.js"></script>

你不需要时间。使用原版,使用.getTime()以毫秒为单位获取时间并将其与当前时间进行比较。请参阅下面的代码:

var date = new Date();
const withinOneSecond = (time) => new Date().getTime() - new Date(time).getTime() < 1000; 
setTimeout(() => {
console.log(withinOneSecond(date)); // true
}, 500)
setTimeout(() => {
console.log(withinOneSecond(date)); // false
}, 1500)

你只需要使用 duration.asHours(( 方法(参见文档(。

const withinOneSecond = (time) => {
const currentTime = moment();
return moment.duration(currentTime.diff(time)).asSeconds() > 1;
};

相关内容

最新更新