2010-07-23 58 views

回答

1

在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分钟分割的是剩余,那么其余的冲突,等等。

+0

你好托马斯 在这里我没有处理日期....在这里处理磁带时间位置。如此大的人力资源职位可以来100小时到112小时可以来 – 2010-07-23 05:57:04

+0

嗯,它是否工作,如果你把,例如,新日期(0,0,0,100,56,56)?虽然我明白你的意思,但这仍然是一种解决方法。 – thomasrutter 2010-07-23 05:59:04

+0

不......它不工作! – 2010-07-23 06:13:36

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