我需要比较马拉松运动员的运行时间,我很难比较运行时间,因为它们采用以下格式; 00:31:26,00:34:29(小时:分钟:秒)。
理想情况下,我想将整个时间转换为分钟,以便我可以使用时间来创建图表。
如何使用javascript或其他方式将比赛时间转换为数字?
答案 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);
上
答案 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
}
演示
答案 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