我想使用Moment.js计算周总时间。请指教。 这是我到目前为止所尝试的:
<img onclick="addtoo(this)" src="http://lorempixel.com/200/200"/>
答案 0 :(得分:4)
这是我在SO和moment.js文档的帮助下取得的成就。
var startTime = moment("06:10:00", 'hh:mm');
var endTime = moment("08:00:00", 'hh:mm');
var totalSec = endTime.diff(startTime, 'seconds');
var hours = parseInt(totalSec / 3600) % 24;
var minutes = parseInt(totalSec / 60) % 60;
var seconds = totalSec % 60;
var result = (hours < 10 ? "0" + hours : hours) + ":" + (minutes < 10 ? "0" + minutes : minutes) + ":" + (seconds < 10 ? "0" + seconds : seconds);
解决方案并非完全按时完成,而是将旧学校逻辑与时刻结合起来。
但这将满足您的要求。
OR
删除旧学校的逻辑,真正使用代码下面的时刻。
var result = moment().startOf('day')
.seconds(totalSec)
.format('H:mm')
JSFiddle两个版本。
答案 1 :(得分:2)
将给出确切结果的最佳解决方案。 即使您的小时数是3位数字,也可以给出正确的结果。
const allhours= [
'5677:40:20',
'888:30:50'
]
const totalhours = allhours.slice(1)
.reduce((prev, cur) => moment.duration(cur).add(prev),
moment.duration(allhours[0]));
var ms = totalhours ._milliseconds;
var ticks = ms / 1000;
var hh = Math.floor(ticks / 3600);
var mm = Math.floor((ticks % 3600) / 60);
var ss = ticks % 60;
console.log(hh+""+mm+""+ss);