使用javascript计算磁带的间隔持续时间?
问题描述:
我必须计算javascript中持续时间的时间间隔。即如果100:56:56至101:00:00,则持续时间为0小时3分钟4秒。使用javascript计算磁带的间隔持续时间?
如何在javasript中做到这一点?
答
在Javascript中,你可以做一个日期对象的数学。
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分钟分割的是剩余,那么其余的冲突,等等。
答
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
你好托马斯 在这里我没有处理日期....在这里处理磁带时间位置。如此大的人力资源职位可以来100小时到112小时可以来 – 2010-07-23 05:57:04
嗯,它是否工作,如果你把,例如,新日期(0,0,0,100,56,56)?虽然我明白你的意思,但这仍然是一种解决方法。 – thomasrutter 2010-07-23 05:59:04
不......它不工作! – 2010-07-23 06:13:36