如何转换时间,例如00:31:26进入javascript中的数字

时间:2013-05-06 10:28:59

标签: javascript

我需要比较马拉松运动员的运行时间,我很难比较运行时间,因为它们采用以下格式; 00:31:26,00:34:29(小时:分钟:秒)。

理想情况下,我想将整个时间转换为分钟,以便我可以使用时间来创建图表。

如何使用javascript或其他方式将比赛时间转换为数字?

5 个答案:

答案 0 :(得分:1)

此示例演示Array.split将字符串拆分为变量array中保存的组件,小时,分钟和秒。然后使用parseInt将组件字符串转换为整数,然后将它们在数学上相乘并相加,以便在几秒钟内为您提供表示。

var time = "01:32:29";
var array = time.split(":");
var seconds = (parseInt(array[0], 10) * 60 * 60) + (parseInt(array[1], 10) * 60) + parseInt(array[2], 10)

console.log(seconds);

jsfiddle

答案 1 :(得分:1)

相同的基本方法,更简洁

  '02:04:03'.split (':').reduce (function (seconds, v) {
      return +v + seconds * 60;
    }, 0) / 60;

split创建一个数组,reduce及其函数以秒为单位计算时间,最后除以60得到分钟作为浮点数。上述结果为124.05。

答案 2 :(得分:0)

首先你需要转换为秒,因为你有时间hh:mm:ss。如果您将直接转换为分钟,则可能无法得到确切的时间。您需要以这种方式实现它:

示例

var hms = '03:09:56';    // your input string
var a = hms.split(':'); // split it at the colons

// minutes are worth 60 seconds. Hours are worth 60 minutes.
var seconds = (+a[0]) * 60 * 60 + (+a[1]) * 60 + (+a[2]); 

//if you want hours
var minutes = (seconds)/60;

console.log(minutes);

答案 3 :(得分:0)

没有库,我会使用类似的东西

convertToMinutes = function(timeString) {
    var hms = timeString.split(':');
    return Math.ceil(parseInt(hms[2])/60) + parseInt(hms[1]) + parseInt(hms[0])*60
}

演示

http://jsbin.com/awiyir/1/edit

答案 4 :(得分:0)

也可以使用内置的Date对象。然后,您可以使用内置函数进行计算,格式化等。

由于Date是一个日期而不是一个简单的时间,我建议将它与unix时间对齐。然后.getTime()将获得正确的毫秒数。

var time1 = new Date ('01 01 70 00:31:26 UTC');
var time2 = new Date ('01 01 70 00:29:15 UTC');
var timediff=time1-time2;  // Gets the time diff in millisecs

有点hackish,但效果很好。

有关Date对象的更多信息:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date