我必须在javascript中计算持续时间的间隔。即,如果是100:56:56到101:00:00,那么持续时间是0小时3分4秒。
如何在javasript中执行此操作?
答案 0 :(得分:1)
在Javascript中,您可以对Date对象进行数学运算。
var
date1 = new Date(2010, 07, 07, 05, 00, 00),
date2 = new Date(2010, 07, 21, 15, 30, 00);
return (date2 - date1);
这将返回两个日期之间的毫秒数。
然后,您可以将其转换为小时,分钟和秒,如果您想要除以86400000几天,然后将其余部分除以3600000小时,然后将其余部分除以60000分钟等等。
答案 1 :(得分:1)
function Time (hour, min, sec) {
this.hour = hour;
this.min = min;
this.sec = sec;
}
Time.parse = function (str) {
var arr = str.split (":");
return new Time (arr [0], arr [1], arr [2]);
};
Time.prototype = {
constructor: Time
, toString: function () {
return [this.hour, this.min, this.sec].join (":");
}
, toSec: function () {
return this.hour * 3600 + this.min * 60 + this.sec;
}
, toMillSec: function () {
return this.toSec () * 1000;
}
, subtract: function (time) {
diff = new Time (
this.hour - time.hour
, this.min - time.min
, this.sec - time.sec
);
if (diff.sec < 0) {
diff.sec += 60;
--diff.min;
}
if (diff.min < 0) {
diff.min += 60;
--diff.hour;
}
return diff;
}
};
var t1 = Time.parse ("101:00:00");
var t2 = Time.parse ("100:56:56");
var t3 = t1.subtract (t2);
t3.toString (); // "0:3:4"
t3.toMillSec (); // 184000