如果你要還具有毫秒值,你要考慮他們,然後將時間轉換爲毫秒。現在,添加它們並將它們除以記錄數。否則,將所有內容都轉換爲秒並查找平均值 - 當然,您會在幾秒鐘內得到答案。
如果花很少的時間仔細考慮,轉換就非常簡單。以下是如何轉換。
到毫秒:
function convertToMS(timeStr) { // timeStr in format 'HH:MM:SS.mm'
var I = parseInt; // for brevity
var t = timeStr,
h = I(t.substr(0,2)),
m = I(t.substr(3,2)),
s = I(t.substr(6,2)),
ms = I(t.substr(9,2));
return h * 3600000 + m * 60000 + s * 1000 + ms;
}
到秒:
function convertToS(timeStr) { // timeStr in format 'HH:MM:SS[.mm]' -- .mm is ignored.
var I = parseInt; // for brevity
var t = timeStr,
h = I(t.substr(0,2)),
m = I(t.substr(3,2)),
s = I(t.substr(6,2));
return h * 3600 + m * 60 + s;
}
轉換的完成,把它們加起來,發現平均後。
UPDATE: 轉換回格式「HH:MM:SS.mm」,我們換回來的時間到時,分,秒「塊」和(如果適用)毫秒。
function chunkifyFromSec(time) { // time in s
var t = "",
h = Math.floor(time/3600),
m = Math.floor((t - (h * 3600))/60),
s = t - (h * 3600) - (m * 60);
return {
HH: h, MM: m, SS: s, mm: 0
};
}
function chunkifyFromMS(time) { // time in ms
var t = "",
h = Math.floor(time/3600000),
m = Math.floor((t - (h * 3600000))/60000),
s = Math.floor((t - (h * 3600000) - (m * 60000))/1000),
mm = t - (h * 3600000) - (m * 600000) - (s * 1000);
return {
HH: h, MM: m, SS: s, mm: mm
};
}
然後,我們在格式返回字符串 'HH:MM:SS.mm' 使用此:
function toTimeStr(chunks) {
return
(chunks.HH < 0 ? '0' : '') + chunks.HH + ":"
+= (chunks.MM < 0 ? '0' : '') + chunks.MM + ":"
+= (chunks.SS < 0 ? '0' : '') + chunks.SS + "."
+= (chunks.mm < 0 ? '0' : '') + chunks.mm
}
@Deano您可以檢查這個答案 – thecodeparadox
這也工作得很好! – Deano
@Deano,我認爲我的工作更簡單,更好,謝謝 – thecodeparadox