Adding HH:MM:SS strings in Javascript

被刻印的时光 ゝ 提交于 2019-12-12 04:29:07

问题


I don't think I can figure this out on my own. Lets say I have a time in the string format of HH:MM:SS ex. 10:11:06 and I would like to add another time to it and return it as a string. ex. "10:11:06" + "11:00:01" would return "21:11:07"

I have gone through this site coming up with a solution of converting it to seconds and then adding them together as such:

function addTimes(start, end) {
 var a = start.split(":");
 var seconds = (+a[0]) * 60 * 60 + (+a[1]) * 60 + (+a[2]); 
 var b = end.split(":");
 var seconds2 = (+b[0]) * 60 * 60 + (+b[1]) * 60 + (+b[2]); 

 var date = new Date(1970,0,1);
     date.setSeconds(seconds + seconds2);

 var c = date.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "$1");
     return c;
     console.log(c);
}   

Yet console.log C returns an Invalid Date. Is this still a string or am I doing something wrong?

Source 1 Source 2

EDIT: (I was stupid) I had this in a recursive loop and I initialized the sum variable with a var s = 0; instead of a var s = "00:00:00";


回答1:


Try this

var start = "10:11:06";
var end = "10:11:06";
  var a = start.split(":");
 var seconds = (+a[0]) * 60 * 60 + (+a[1]) * 60 + (+a[2]); 
 var b = end.split(":");
 var seconds2 = (+b[0]) * 60 * 60 + (+b[1]) * 60 + (+b[2]); 

 var date = new Date(1970,0,1);
     date.setSeconds(seconds + seconds2);

 var c = date.toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "$1");
console.log(c);



回答2:


try

var c = date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds();
return c;

to convert date object to time.



来源:https://stackoverflow.com/questions/42964873/adding-hhmmss-strings-in-javascript

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!