gpt4 book ai didi

javascript - 如何在触发 setinterval 函数或即将结束时找到开始和/或结束时间戳

转载 作者:行者123 更新时间:2023-11-29 23:22:13 25 4
gpt4 key购买 nike

我尝试用 Tampermonkey 为我经常访问的网站编写脚本,以记录我的船只的移动。
有一个从网站生成的表格,其中包含当前的 Action ,代码如下:

<table class="movements_table">
<tbody>
<tr id="moveInfo815198" class="own">
<td><span title="Arrival time">1D 8h 3m</span></td>
<td class="ships">200</td>
<td class="quantity">200,000</td>
<td title="Origin" class="source">Town1</td>
<td title="Target" class="target">Town2</td>
</tr>
<tr id="moveInfo815199" class="own">
<td><span title="Arrival time">5D 3m 42s</span></td>
<td class="ships">50</td>
<td class="quantity">50,000</td>
<td title="Origin" class="source">Town1</td>
<td title="Target" class="target">Town2</td>
</tr>
</tbody>
</table>

从网络开发者工具中,我意识到标签:table、tr 和 span 是每秒更新的。
我假设它们是用 setInterval 函数更新的,并且这个函数必须为每个移动(表格行)有一个结束时间戳。
我的问题是我不知道在代码中的何处查找这些时间戳,以便记录我的每个 Action 的准确到达时间。

我希望得到的结果是一个 javascript 数组(即 movements),它具有与 movements(表格的行)一样多的项目,其中该数组的每个项目都是另一个数组。这些数组中的每一个都将包含以下项目:

[id,timestamp,ships,quantity,origin,target]

通过解析上面的代码,结果如下:

var movements = [
[815198,endtimeofsetInterval1,200,200000,Town1,Town2],
[815199,endtimeofsetInterval2,50,50000,Town1,Town2]
];

endtimeofsetInterval1endtimeofsetInterval2 应该以毫秒为单位,并且应该写在 HTML 代码的某处。
一个简单的解决方案是将到达时间从天、小时、分钟、秒转换为毫秒并添加现在的毫秒。
这个解决方案的问题是到达时间每次只给出它的三个部分,就像第一个运动 (1D 8h 3m)。
因此,如果我将之前的时间转换为毫秒,这将是 86400000,但它也可能是 86459000 或介于两者之间的某物,因为到达时间的秒数未显示。
这意味着我要记录的 endtimeofsetInterval1 不会是正确的,并且计算中可能最多缺少 59 秒。
这就是为什么我想找到用于更新上表标签的真实时间戳。

附言我只对我的脚本与 Google Chrome 的兼容性感兴趣。

有没有办法找出这些项目在 HTML 代码中的位置?

最佳答案

我不确定这是否能解决您的问题,但您可以简单地向 JavaScript 询问您的当前时间,为您的元素设置 timestamp 属性并按如下方式更新它:

function getTimestamp() {
return new Date().getTime();
}

setInterval( ()=>{
let element = document.getElementById('moveInfo815198').setAttribute("timestamp", getTimestamp())
}, 1000)

如果您想更新到达时间,您需要知道到达的确切日期和时间,例如- 20 May 2018 13:45:25。然后你可以简单地创建一个函数来计算从当前时间开始的小时数、分钟数、秒数。

关于javascript - 如何在触发 setinterval 函数或即将结束时找到开始和/或结束时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50274607/

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