Somme du temps en utilisant javascript

Comment faire pour sum de temps en javascript

01:00:00 00:30:00 00:30:00 

J’ai le temps comme ci-dessus je veux la sum du temps donné comme

 sum of above time= 02:00:00 

si j’utilise la méthode javascript setHours (), setMinutes (), ces fonctions remplacent l’ancien temps et affichent le temps nouvellement ajouté comme:

 1. new Date( new Date(0, 0, 0, 00, 00, 00, 0)).setMinutes(30) 2. new Date(new Date( new Date(0, 0, 0, 00, 00, 00, 0)).setMinutes(30)).setMinutes(30); 

ces résultats ci-dessus condition est identique, mais je veux ici 00:30 + 00:30 = 01:00

. S’il vous plaît aider merci d’avance

Essaye ça :

  var time1 = "01:00:00"; var time2 = "00:30:00"; var time3 = "00:30:00"; var hour=0; var minute=0; var second=0; var splitTime1= time1.split(':'); var splitTime2= time2.split(':'); var splitTime3= time3.split(':'); hour = parseInt(splitTime1[0])+parseInt(splitTime2[0])+parseInt(splitTime3[0]); minute = parseInt(splitTime1[1])+parseInt(splitTime2[1])+parseInt(splitTime3[1]); hour = hour + minute/60; minute = minute%60; second = parseInt(splitTime1[2])+parseInt(splitTime2[2])+parseInt(splitTime3[2]); minute = minute + second/60; second = second%60; alert('sum of above time= '+hour+':'+minute+':'+second); 

Quelques fonctions pour vous aider à aller et venir entre la durée formatée et les secondes sous forme d’entier:

 function timestrToSec(timestr) { var parts = timestr.split(":"); return (parts[0] * 3600) + (parts[1] * 60) + (+parts[2]); } function pad(num) { if(num < 10) { return "0" + num; } else { return "" + num; } } function formatTime(seconds) { return [pad(Math.floor(seconds/3600)%60), pad(Math.floor(seconds/60)%60), pad(seconds%60), ].join(":"); } 

Vous pouvez les utiliser pour réaliser ce que vous voulez:

 time1 = "02:32:12"; time2 = "12:42:12"; formatTime(timestrToSec(time1) + timestrToSec(time2)); // => "15:14:24" 

Si vous souhaitez utiliser un object Date pour cela, vous pouvez le faire, vous devez simplement vous assurer d’inclure la valeur actuelle de l’unité que vous modifiez lors de l’ajout, comme ceci:

 var dt = new Date(0, 0, 0, 0, 0, 0, 0); dt.setHours(dt.getHours() + 1); // For the 01:00 dt.setMinutes(dt.getMinutes() + 30); // For the first 00:30 dt.setMinutes(dt.getMinutes() + 30); // For the second 00:30 display("Hours: " + dt.getHours()); display("Minutes: " + dt.getMinutes()); function display(msg) { var p = document.createElement("p"); p.innerHTML = Ssortingng(msg); document.body.appendChild(p); } 

Cette solution est parfaite:

 function timestrToSec(timestr) { var parts = timestr.split(":"); return (parts[0] * 3600) + (parts[1] * 60) + (+parts[2]); } function pad(num) { if(num < 10) { return "0" + num; } else { return "" + num; } } function formatTime(seconds) { return [pad(Math.floor(seconds/3600)%60), pad(Math.floor(seconds/60)%60), pad(seconds%60), ].join(":"); } 

mais il y a un petit bug dans la dernière fonction "formatTime"!

 return [pad(Math.floor(seconds/3600)%60), => return [pad(Math.floor(seconds/3600)), 

donc sans% 60 !! Parce que si je dois additionner heure, il peut être supérieur à 60 (H)

Ce travail pour moi:

  function padnum(n){return n<10 ? '0'+n : n} var time1 = "00:30"; var time2 = "00:60"; var minute=0; var second=0; var splitTime1= time1.split(':'); var splitTime2= time2.split(':'); minute = parseInt(parseInt(splitTime1[0]))+parseInt(splitTime2[0]); second = parseInt(parseInt(splitTime1[1]))+parseInt(splitTime2[1]); minute = minute + second/60; minute =parseInt(minute); second = second%60; minute = padnum(minute); second = padnum(second); alert('sum of above time= '+minute+':'+second);