将字符串时间转换为毫秒(字符串操作?)

时间:2020-07-01 06:30:48

标签: javascript jquery

我有一个采用以下格式的时间字符串:

10h 30m 04s

我需要转换为毫秒。

这里最好的方法是使用子字符串?

类似:

var hours = myStr.substring(0, 1);

3 个答案:

答案 0 :(得分:2)

您可以使用splitreduce以非常紧凑的方式执行此操作,如下所示:

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)