在Javascript

时间:2017-03-23 00:01:36

标签: javascript string time add

我不认为我可以自己解决这个问题。 假设我有时间使用字符串格式的HH:MM:SS ex。 10:11:06我希望再添加一次并将其作为字符串返回。恩。 "10:11:06" + "11:00:01" would return "21:11:07"

我已经通过这个网站提出了将其转换为秒的解决方案,然后将它们加在一起:

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);
}   

然而,console.log C返回无效日期。这仍然是一个字符串还是我做错了什么?

Source 1 Source 2

编辑:(我很蠢)我在递归循环中使用了这个,并用var s = 0;而不是var s = "00:00:00";

初始化了sum变量

2 个答案:

答案 0 :(得分:0)

试试这个

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);

答案 1 :(得分:-1)

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

将日期对象转换为时间。