A função abaixo tem o objetivo de subtrair duas horas passadas para ela.

  1. function subtraiHora(hrA, hrB) {
  2.         if(hrA.length != 5 || hrB.length != 5) return "00:00";
  3.        
  4.         temp = 0;
  5.         nova_h = 0;
  6.         novo_m = 0;
  7.  
  8.         hora1 = hrA.substr(0, 2) * 1;
  9.         hora2 = hrB.substr(0, 2) * 1;
  10.         minu1 = hrA.substr(3, 2) * 1;
  11.         minu2 = hrB.substr(3, 2) * 1;
  12.        
  13.         temp = minu1 – minu2;
  14.         while(temp < 0) {
  15.                 nova_h++;
  16.                 temp = temp + 60;
  17.         }
  18.         novo_m = temp.toString().length == 2 ? temp : ("0" + temp);
  19.  
  20.         temp = hora1 – hora2 – nova_h;
  21.         while(temp < 0) {
  22.                 temp = temp + 24;
  23.         }
  24.         nova_h = temp.toString().length == 2 ? temp : ("0" + temp);
  25.  
  26.         return nova_h + ‘:’ + novo_m;
  27. }

Como usar:

  1. novaHora = subtraiHora("12:00", "02:27");
  2. novaHora -> "09:33"