我有两个时间字符串,例如 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);
Expected Answer -> 01:42
Actual Answer -> 02:18
有人能告诉我,我哪里做错了吗?
最佳答案
使用如下几个实用函数可能会有所帮助。
基本上 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);
关于javascript - 如何减去两个时间字符串 (HH :MM) in javascript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57111055/