我有两个时间字符串,例如03:01和01:19。我要减去这两个, 我尝试如下,
var time1= "03:01".split(':');
var time2= "01:19".split(':');
var minutes = Math.abs(Number(time1[1])-Number(time2[1]));
var hours = Math.floor(parseInt(minutes / 60));
hours = Math.abs(Number(time1[0])-Number(time2[0])-hours);
minutes = minutes % 60;
if(hours.toString().length == 1){
hours = '0'+hours;
}
if(minutes.toString().length == 1){
minutes = '0'+minutes;
}
console.log(hours+':'+minutes);
预期答案-> 01:42
实际答案-> 02:18
有人可以告诉我,我在哪里做错了?
答案 0 :(得分:0)
使用如下所示的几个实用程序功能可能会有所帮助。
基本上strToMins
将字符串转换为分钟。
和minsToStr
转换回字符串。
以下示例。
var time1= "03:01";
var time2= "01:19";
function strToMins(t) {
var s = t.split(":");
return Number(s[0]) * 60 + Number(s[1]);
}
function minsToStr(t) {
return Math.trunc(t / 60)+':'+('00' + t % 60).slice(-2);
}
var result = minsToStr( strToMins(time1) - strToMins(time2) );
console.log(result);