2016-08-11 60 views
4

我已經在分鐘的格式設置的三次時間:秒:毫秒,我需要以加在一起,並獲得總時間..添加行值

例如我用的一個是:0:31.110 + 0:50.490 + 0:32.797 其中= 1:54.397

所以如何做到這一點在JavaScript?

這裏是JS代碼

var sp1 = $('#table tr td:nth-child(2)').text() 
var sp2 = $('#table tr td:nth-child(3)').text() 
var sp3 = $('#table tr td:nth-child(4)').text() 
var1 = sp1 + sp2 + sp3 
$('td:nth-child(5)').html(var1); 

我不知道從哪裏開始,但我剛剛想出了上面的代碼.. 我需要的輸出爲1:在過去的54.397 td,但是我得到這個例子中顯示的0:31.1100:50.4900:32.797 http://jsfiddle.net/q1kumbea/

+1

以及您希望陣列添加儘可能多的數字,你可以簡單地用分割法打破它和做數學題 – aw04

+0

你需要拆分時間,然後單獨添加每個組件,如t1.split(「:」),t2.split(「:」),t3.split(「:」),然後t1 [0] + t2 [0] + t3 [0 ] ...並在結尾再次加入冒號(:) – atul

回答

6

你可以使用moment.js這個。這將使它很容易,因爲你可以解析的時間以正確的格式,添加moments在一起......

var sp1 = $('#table tr td:nth-child(2)').text() 
var sp2 = $('#table tr td:nth-child(3)').text() 
var sp3 = $('#table tr td:nth-child(4)').text() 
var1 = moment(sp1, "mm:ss.SSS") + moment(sp2, "mm:ss.SSS") + moment(sp3, "mm:ss.SSS") 
$('td:nth-child(5)').html(moment(var1).format("mm:ss.SSS")); 

...瞧

enter image description here

Updated fiddle

+0

完美!正是我想要的。 – skyline33

+0

太棒了! @ skyline33 – baao

+0

您可能想爲日期格式使用變量,因此您不必重複它。 –

3

我不知道任何本地功能,但你總是可以(幾乎:))使用一些數學來實現你想要的。像下面

var plusTimes = function(arr) { 
var resultTime =0; 

for(var i = 0; i < arr.length; i ++) { 
resultTime += (parseInt((arr[i].split(':')[0]) * 60 * 1000) + (parseInt(arr[i].split(':')[1].split('.')[0]) * 1000) + parseInt(arr[i].split('.')[1])) 

} 
var ms = (resultTime/1000).toString().split('.')[1]; 
var sec = parseInt((resultTime/1000).toString().split('.')[0]) % 60; 
var min = (parseInt((114397/1000).toString().split('.')[0]) - parseInt((114397/1000).toString().split('.')[0]) % 60)/60; 

return min + ':' + sec + '.' + ms; 

} 
plusTimes(['0:31.110','0:50.490', '0:32.797']) // outputs "1:54.397" 

可以,除非你把它們的格式相同

+0

不錯,這也適用--- http://jsfiddle.net/q1kumbea/2/ – skyline33