2010-04-23 10 views

Répondre

4

D'abord, vous devez analyser les chaînes pour obtenir des objets de date, j'utilise généralement une fonction comme suit, pour extraire les parties de date, et utilisez le constructeur Date:

function parseDate(input) { 
    var parts = input.match(/(\d+)/g); 
    // new Date(year, month [, date [, hours[, minutes[, seconds[, ms]]]]]) 
    return new Date(parts[0], parts[1]-1, parts[2], // months are 0-based 
        parts[3], parts[4]); 
} 

var diff = parseDate("2010-05-30 00:41") - parseDate("2010-04-23 15:03"); 
// 3145080000 milliseconds 
0

Vérifiez la bibliothèque JS DateTime sur CodePlex. Il vous permet de gérer DateTimes de la même manière que .NET (bien avec certaines restrictions bien sûr).

4
var d1 = new Date(2010,3,23,15,3); 
var d2 = new Date(2010,4,30,0,41); 

var delta = Math.abs(d1 - d2); 

La réponse sera en millisecondes.

+2

Cela devrait être 'nouvelle date (2010,3,23,15,3) ». Le mois doit être '- 1' (Jan = 0, Fév = 1, etc.) et vous devriez éviter un zéro non significatif sauf si vous utilisez des nombres basés sur l'octal. Dito pour la deuxième 'Date'. – RoToRa

+0

@RoToRa: Oui, merci. Je viens juste de lier les traits d'union, les espaces et les deux-points hors de ses dates sans regarder les valeurs elles-mêmes. Edité pour refléter cela. – Robusto

+1

Pas besoin de 'valueOf' s. –

Questions connexes