gpt4 book ai didi

Javascript 比较 2 个日期,结果必须是 setTimeout() 方法(以毫秒为单位)

转载 作者:行者123 更新时间:2023-12-03 08:16:25 25 4
gpt4 key购买 nike

我正在尝试按小时/分钟/秒比较 2 个日期,以便制作一个脚本在关闭时恢复脚本。如果当前时间通过关闭时间+间隔(当前设置为30分钟)应该正常执行并运行脚本,如果没有等到差异执行超时。

当前小时/分钟/秒不是必须的,但结果应该以毫秒为单位

示例:

interval = (30 * 60 * 1000)
close time = 15:10:53
current time = 15:15:29
close time + interval = 15:40:53

first time I check if `current time` <= `close time + interval`
then calculate `difference`
`difference` = (close time + interval = 15:40:53) - (current time = 15:15:29)

Result should be setTimeout(function(){ alert("Hello"); }, time difference);

我想到的唯一方法是计算小时、分钟、秒的每个差异,然后找出 setTimeout 的毫秒

我尝试过,但结果很奇怪,不算小于 30 分钟

var ONE_S = 1000 ;  
var timeDiff = Math.abs(closeTime - currentTime);
var diffS = Math.round(timeDiff/ONE_S)

最佳答案

使用Date对象并比较时间戳,如下所示:

var interval = 30 * 60 * 1000;
var closeTime = new Date('Wed Nov 26 2015 10:17:44 GMT-0400 (AST)');
var currentTime = new Date;
var difference = (closeTime - currentTime) + interval;

if(difference < 0) {
console.log('time has expired');
}else{
setTimeout(someFunction, difference);
}

closeTime - currentTime获取时间戳之间的时间(以毫秒为单位),如果超过了关闭时间,则该时间将为负数。我们将关闭时间偏移 30 分钟(通过添加 interval )。然后我们只需要检查是否 difference < 0知道时间是否已到,如果没有我们可以等待difference触发毫秒数 someFunction

关于Javascript 比较 2 个日期,结果必须是 setTimeout() 方法(以毫秒为单位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33918717/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com