javascript - 有效地将基于字符串的时间转换为毫秒

标签 javascript

我面临一个挑战,要创建一个将基于字符串的时间转换为毫秒的函数。

这是我得到的字符串格式:

"hours:minutes:seconds.milliseconds"

例如,这个值需要返回 3010220。

"0:50:10.220"

该函数需要简短且一行。 我很想知道在哪里可以改进下面的功能,因为它没有通过标准。这怎么能变成一个衬垫?

function toMilliseconds(time){
  return time.match(/[0-9]+/g).map(function(val,s,a){
    return s != 3 ? +val * ((Math.pow(60,a.length - s -2) * 1000)) : +val;
  }).reduce(function(a,b){
    return a+b;
  },0);
}

最佳答案

有很多不同的方法。

这是我能想到的最短的方法(使用 ES6):

var str = "0:50:10.220";

var ms = (s=>1E3*s[2]+6E4*s[1]+36E5*s[0])(str.split(':'));

console.log(ms);

关于javascript - 有效地将基于字符串的时间转换为毫秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38829656/

相关文章:

javascript - Socket.io 客户端由于 ping 超时/传输关闭而断开连接

javascript - 如何跟踪在 Javascript 中创建了多少个数组?

javascript - 调用按钮单击功能时保持类 this

javascript - 如何使用运行 iOS6 的 iPad 调试 iPad iOS5 Javascript 错误?

javascript - 选择多个元素 height();

javascript - Node Red 和 Raspberry pi sense hat 图表

javascript - 我如何获得类似的滚动效果

javascript - 使用 Vue CLI - 如何更新、删除和查看所有可用插件

php - json_decode 不解释数组

javascript - 如何使用javascript设置H1的颜色?