Javascript 减去时间并以分:秒格式显示差异
我想准确地显示两次之间的差异。应以mm:ss等格式显示不同的文件Javascript 减去时间并以分:秒格式显示差异,javascript,Javascript,我想准确地显示两次之间的差异。应以mm:ss等格式显示不同的文件 methods: { calcuateTimeDifference: function (startTime, endTime) { let result = 0; if (startTime && endTime) { let start = startTime.split(":");
methods: {
calcuateTimeDifference: function (startTime, endTime) {
let result = 0;
if (startTime && endTime) {
let start = startTime.split(":");
let end = endTime.split(':');
let startTimeInHrs = (parseFloat(start[0]/3600) + parseFloat(start[1]/60) + parseFloat(start[2]/3600));
let endTimeInHrs = (parseFloat(end[0]/3600) + parseFloat(end[1]/60) + parseFloat(end[2] /3600));
result = endTimeInHrs - startTimeInHrs;
}
return result.toFixed(2);
},
使用此函数-以下时间之间的差异:16:03:01-16:04:01-我得到的结果为-32.00。
拆分上的字符串:
以获取小时、分钟和秒
%
)将差秒转换为小时、分钟和秒let start=“16:03:01”;
让end=“16:04:05”;
让时间=计算时间差(开始、结束);
console.log(时间);
函数计算时差(开始时间、结束时间){
设结果=0;
如果(开始时间和结束时间){
const start=startTime.split(“:”).map(编号);
const end=endTime.split(“:”).map(编号);
常量开始秒=(60*60)*开始[0]+60*开始[1]+开始[2];
常量结束秒=(60*60)*结束[0]+60*结束[1]+结束[2];
const diffSeconds=endSeconds-startSeconds;
秒=parseInt((diffSeconds)%60);
分钟=parseInt((diffSeconds/60)%60);
小时=parseInt((diffSeconds/(60*60))%24);
//如果是单个数字,则在前面追加“0”
小时数=(小时数<10)?“0”+小时数:小时数;
分钟=(分钟<10)?“0”+分钟:分钟;
秒=(秒<10)?“0”+秒:秒;
返回`${hours}:${minutes}:${seconds}`;
}
console.log(“无效输入”);
}
为什么要将小时数除以3600?您需要乘以3600以获得秒数。分钟也一样,用乘法代替除法。然后你也会因为某种原因把秒除以3600。别管它了。修复了这个问题,但仍然无法获得以下格式的时间mm:ssWell你没有代码尝试这样做。。。
function calcuateTimeDifference(startTime, endTime) {
let toSeconds = (time) => {
let [h, m, s] = time.split(':');
return h * 360 + m * 60 + +s;
};
let d = Math.abs(toSeconds(startTime) - toSeconds(endTime));
let mm = String(Math.floor(d / 60));
if (mm.length == 1) mm = '0' + mm;
let ss = String(d % 60);
if (ss.length == 1) ss = '0' + ss;
return `${mm}:${ss}`;
}