代码之家  ›  专栏  ›  技术社区  ›  Treby

javascript:减去时间并获得其分钟数

  •  7
  • Treby  · 技术社区  · 15 年前

    例如:

    StartTime = '00:10';
    EndTIme = '01:20';
    

    这些变量是字符串

    问题:如何减去它们并以分钟为单位返回跨度时间?

    希望你能帮忙

    4 回复  |  直到 9 年前
        1
  •  15
  •   Guffa    15 年前

    生成一个函数,将这样的字符串解析为分钟:

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

    现在,您可以分析字符串并减去:

    var minutes = parseTime(EndTIme) - parseTime(StartTime);
    
        2
  •  6
  •   David Hedlund    15 年前
    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;
    
        3
  •  2
  •   T. Stone    15 年前

    如果你要做大量的日期/时间操作,那就值得检查一下。 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);
    }
    
        4
  •  1
  •   gimel    15 年前

    dojo.date.difference 是为任务而构建的-只需请求一个“分钟”间隔。

    获取两个日期之间以特定时间单位(例如月、周、天等)表示的差异,四舍五入为最接近的整数。

    用途:

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