两个时间(不是日期)之间的差异,格式为(hh:mm)。

问题描述 投票:0回答:1

例如,我有这两个时间作为字符串。

Time_A = "07:35" (means 7 hours and 35 minutes)

Time_B = "15:00" (means 15 hours and 00 minutes)

现在我想从Time_A中减去Time_B. 这应该返回"-07:25"(意味着减去7小时25分钟),因此我试着使用下面的函数,但这个函数返回的是:-8:-25:00而不是-07:25:00。

function time_diff(Time_A,Time_B ) {

           var t1parts = t1.split(':');
           var t1cm = Number(t1parts[0]) * 60 + Number(t1parts[1]);

           var t2parts = t2.split(':');
           var t2cm = Number(t2parts[0]) * 60 + Number(t2parts[1]);

           var hour = Math.floor((t1cm - t2cm) / 60);
           var min = Math.floor((t1cm - t2cm) % 60);
           return (hour + ':' + min + ':00');
}

但这个函数返回的是: -8: -25: 00 而不是 -07: 25: 00. 有什么办法可以解决这个问题吗?

javascript html date time timespan
1个回答
3
投票

这是因为你把一个负数四舍五入了。

Math.floor(-455/60) = Math.floor(-7.4166667) = -8

你可以这样做:

var diff = Math.abs(t1cm - t2cm);
var hour = Math.floor(diff / 60);
var min = diff % 60;

return (t1cm < t2cm ? '-' : '') + hour + ':' + min + ':00';
© www.soinside.com 2019 - 2024. All rights reserved.