2010-07-23 3 views

Répondre

1

En Javascript, vous pouvez faire des maths sur un objet de Date.

var 
    date1 = new Date(2010, 07, 07, 05, 00, 00), 
    date2 = new Date(2010, 07, 21, 15, 30, 00); 

return (date2 - date1); 

Cela retournera le nombre de millisecondes entre les deux dates.

Vous pouvez ensuite convertir en heures, minutes et secondes si vous voulez en divisant par 86.400.000 pendant plusieurs jours, puis divisez le reste de ce par 3.600.000 pendant des heures, puis le reste de cette 60000 pour les minutes, etc.

+0

bonjour thomas ici, je ne suis pas affaire à ce jour .... traiter ici avec des positions de temps de bande. si grande position hr peut venir 100e hr à 112 h peut venir –

+0

Hmmm ça marche si vous mettez, par exemple, une nouvelle date (0, 0, 0, 100, 56, 56)? Bien que j'obtienne ce que vous voulez dire, cela peut toujours être une solution de contournement. – thomasrutter

+0

non ... ça ne marche pas !!! –

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 
Questions connexes