我有10个时间记录。我想用momentjs获得总小时数
这是我的代码
总时间价值
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
MY CONTROLLER
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;
});
});
}
输出错误:
答案 0 :(得分:2)
您获得该输出有几个原因:
tth
转换为时刻。您应该将其转换为持续时间。以下是获取输出的两种方法(检查控制台中的最后几行以了解2个输出之间的差异):
注意:由于你的问题与angularjs无关,我正在展示简单的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>