2009-12-22 7 views

Répondre

15

Faire une fonction pour analyser une chaîne comme cela en minutes:

function parseTime(s) { 
    var c = s.split(':'); 
    return parseInt(c[0]) * 60 + parseInt(c[1]); 
} 

Maintenant, vous pouvez analyser les chaînes et juste soustraire:

var minutes = parseTime(EndTIme) - parseTime(StartTime); 
+0

Cela fonctionne grand !!! .. Merci – Treby

+0

cela fonctionne .. merci – Sankar

6
var startTime = "0:10"; 
var endTime = "1:20"; 

var s = startTime.split(':'); 
var e = endTime.split(':'); 

var end = new Date(0, 0, 0, parseInt(e[1], 10), parseInt(e[0], 10), 0); 
var start = new Date(0, 0, 0, parseInt(s[1], 10), parseInt(s[0], 10), 0); 

var elapsedMs = end-start; 
var elapsedMinutes = elapsedMs/1000/60; 
2

Si vous allez faire beaucoup de manipulation de date/heure, il vaut la peine de vérifier date.js.

Cependant, si vous essayez juste de résoudre ce problème, voici un algorithme qui me vient à l'esprit.

(1) Parse début/valeurs de fin pour obtenir des heures et des minutes, (2) Convertir heures en minutes, (3) Soustraire

function DifferenceInMinutes(start, end) { 
    var totalMinutes = function(value) { 
     var match = (/(\d{1,2}):(\d{1,2})/g).exec(value); 
     return (Number(match[1]) * 60) + Number(match[2]); 
    }  
    return totalMinutes(end) - totalMinutes(start); 
} 
+0

je suis arrivé erreur: Match est nul – Treby

1

dojo.date.difference est construit pour la tâche - il suffit de demander une « minute "intervalle.

Get the difference in a specific unit of time (e.g., number of months, weeks, days, etc.) between two dates, rounded to the nearest integer.

Usage:

var foo: Number (integer)=dojo.date.difference(date1: Date, date2: Date?, interval: String?); 
Questions connexes