2017-09-21 1 views
0

J'ai 10 enregistrements de temps. Je veux obtenir le nombre total d'heures en utilisant momentjsAngularjs obtenir le nombre total d'heures en utilisant les momentsj

Voici mon code

HEURES TOTAL VALEUR

00:47:21 
00:00:25 
00:00:08 
00:00:03 
00:00:37 
16:12:12 
04:44:22 
01:39:03 
00:01:58 
16:17:29 

mon contrôleur

vm.tth = 0; 

function getFirst() { 

    dataservice.getUserProfile(vm.userId).then(function (data) { 
    vm.userlistData2 = data; 
    imageservice.getCurrentImage(vm.userlistData2.user_id).then(function (data) { 
     vm.photo = data; 
    }); 

    dataservice.getUserAttendance(vm.userlistData2.user_id).then(function (data) { 

     vm.attendance = data; 

     for(var x=0; x < vm.attendance.length; x++){ 

     vm.tth += moment.duration(vm.attendance[x].totalHrs); 
     console.log(moment(vm.tth).format('HH:mm:ss')); 

     } 
     return vm.attendance; 

    }); 
    }); 
} 

** SORTIE EST MAL ** enter image description here

Chaque suggestion est appréciée.

Répondre

2

Il y a deux raisons pour lesquelles vous obtenez cette sortie:

  1. Vous transformez tth à instant. Vous devriez le convertir en durée.
  2. Le nombre total d'heures dépasse 24 heures et est donc modulé (heures% 24). Dans ce cas, vous pouvez afficher le nombre de jours et d'heures.

Voici les 2 façons dont vous pouvez obtenir la sortie (voir les deux dernières lignes dans la console pour comprendre la différence entre les 2 sorties):

Note: que votre question n'a rien à voir avec AngularJS, Je montre le code simple de JS.

var attendance = [ 
 
    '00:47:21', 
 
    '00:00:25', 
 
    '00:00:08', 
 
    '00:00:03', 
 
    '00:00:37', 
 
    '16:12:12', 
 
    '04:44:22', 
 
    '01:39:03', 
 
    '00:01:58', 
 
    '16:17:29' 
 
]; 
 

 
var tth = 0; 
 
for(var x=0; x < attendance.length; x++){ 
 

 
    tth += moment.duration(attendance[x]); 
 
    var d = moment.duration(tth); 
 
    console.log(moment(tth).format('HH:mm:ss') + ' with number of days >> ' + d.days() + ' ' + d.hours() + ':' + d.minutes() + ':' + d.seconds()); 
 
    console.log(moment(tth).format('HH:mm:ss') + ' with hours exceeding 24 ## ' + parseInt(d.asHours()) + ':' + d.minutes() + ':' + d.seconds()); 
 
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>

+0

Omg! Merci beaucoup bro finalement obtenir la logique sur la façon dont cela fonctionne. – Priz