我有一个采用以下格式的时间字符串:
10h 30m 04s
我需要转换为毫秒。
这里最好的方法是使用子字符串?
类似:
var hours = myStr.substring(0, 1);
答案 0 :(得分:2)
您可以使用split和reduce以非常紧凑的方式执行此操作,如下所示:
const time = "10h 30m 04s";
const milliseconds = time.split(" ").reduce((total, v, i) => {
return total + parseInt(v) * 1000 * (60**(2-i));
}, 0);
console.log(milliseconds);
答案 1 :(得分:1)
给出一个恒定的字符串表示形式,在每个元素之间都有一个空格,那么字符串操作就足够容易了。我们首先将字符串分成几个部分(小时,分钟,秒)。然后,对于每个部分,我们使用<button id="generate">generate</button>
<input id="password" value="" />
将其转换为整数(它处理丢弃部分末尾的单个字符,例如parseInt
)。最后,我们使用以毫秒为单位的值常量(例如,以毫秒为单位的1小时)将数值表示形式转换为毫秒。
h
答案 2 :(得分:1)
const timeStr = '10h 30m 04s'
const milliseconds = timeStr.match(/\d+/g)
.reduce((acc, cur, idx) => acc + cur * (Math.pow(60, (2 - idx))) * 1000, 0)
console.log(milliseconds)