2009-12-22 51 views

回答

15

做一个函数像一个字符串解析到分钟:

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

现在,您可以解析字符串,只是减去:

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

This Works Great !!! ..谢谢 – Treby 2009-12-22 08:31:37

+0

这个工作..谢谢 – Sankar 2014-06-25 08:02:46

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

如果你打算做了很多的日期/时间操纵的,这是值得一试date.js

但是,如果你只是想解决这个问题,这里是一个算法,我的头顶。

(1)解析开始/结束值以得到小时和分钟,(2)转换几小时缩短到几分钟,(3)减去

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

我得到错误:比赛is null – Treby 2009-12-22 08:20:16

1

dojo.date.difference的任务是建立 - 只是要求一个“分“区间。

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