使用javascript计算磁带的间隔持续时间?

时间:2010-07-23 05:28:47

标签: javascript

我必须在javascript中计算持续时间的间隔。即,如果是100:56:56到101:00:00,那么持续时间是0小时3分4秒。

如何在javasript中执行此操作?

2 个答案:

答案 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
相关问题