2009-12-22 6 views

Respuesta

15

Hacer una función para analizar una cadena como esa en minutos:

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

Ahora se puede analizar las cadenas y simplemente restar:

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

¡Esto funciona genial! ... Gracias – Treby

+0

esto funciona ... gracias – 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 usted va a estar haciendo un montón de manipulación de fecha/hora, vale la pena echarle un vistazo a date.js.

Sin embargo, si solo estás tratando de resolver este problema, aquí hay un algoritmo que se me ocurre.

(1) Analizar los valores iniciales/finales para obtener horas y minutos, (2) Convertir horas a minutos, (3) Reste

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

llegué error: partido es nulo – Treby

1

dojo.date.difference se construye para la tarea - acaba de pedir un "minuto " intervalo.

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?); 
Cuestiones relacionadas