【发布时间】:2021-06-02 13:33:39
【问题描述】:
我昨天试过了,但是成功了 我得到了这个代码
let str = document.querySelector("#content_value > table:nth-child(2) > tbody > tr > td:nth-child(2) > table:nth-child(11) > tbody > tr:nth-child(10) > td:nth-child(2) > span").textContent;
let timeParts = str.match(/\b(\d\d?):(\d\d?)(?::(\d\d?))?\b/) || [0,0,0];
console.log("Converted to array:", timeParts);
let [, h, m, s] = timeParts.map(str => +str || 0);
let cas = ((h * 60 + m) * 60 + s) * 1000;
console.log(cas);
不幸的是,代码不能将秒转换为毫秒,有人会帮忙吗?
是3次(文字)和时间
time
17:45
0:01:08
0:00:10
时分秒这三个值需要转换成毫秒
这段代码可以工作几小时和几分钟,但不能工作几秒钟
[在此处输入图片描述][2]
[在此处输入图片描述][3]
[2]:https://i.stack.imgur.com/nDdYh.png这个作品 [3]:https://i.stack.imgur.com/8FTuJ.png 秒不工作(18 秒是 18000+1min 60000 (78000))脚本给 1000
<span class="inactive"><span>Suroviny jsou k dispozici za <span class="">0:00:10</span></span><span
function toms(str) {
let timeParts = str.match(/\b(\d\d?):(\d\d?)(?::(\d\d?))?\b/) || [0,0,0,0];
let [, h, m, s] = timeParts.map(str => +str || 0);
let cas = ((h * 60 + m) * 60 + s) * 1000;
return cas;
}
["1:02", "Suroviny jsou k dispozici za 0:01:35Suroviny jsou k dispozici.", "None"].forEach(str => console.log(str, toms(str)))
【问题讨论】:
-
您正在做几件事:1) 在 DOM 中查找一些文本 2) 将文本解析为时间分量 3) 转换为毫秒。请进行一些故障排除(您可以使用浏览器调试器或 console.log,如果您觉得更舒服的话)来找出哪个部分不工作。
-
这里多了一个逗号。
let [, h, m, s] = timeParts.map(str => +str || 0);。在分配给h之前。删除那个逗号,它就可以工作了。let [h, m, s] = timeParts.map(str => +str || 0); -
link 3 次是@ÁlvaroGonzález
-
@Chin.Udara 0: 这次 (0:01:18) "0:01" 1: "0" 2: "01" (第二个是 3: undefined ) 这是我的问题
-
@Chin.Udara “额外的逗号”用于丢弃不需要的值。
标签: javascript