okuznetsov1,
вариант тотже что у вас, но точность ниже до минут только.
var t1 = '16:46',
t2 = '17:04';
function fn(a,b)
{
a = a.split(":");
b = b.split(":");
a = a[0] * 60 + a[1] * 1;
b = b[0] * 60 + b[1] * 1;
a += (b - a)/2;
return [a/60|0,a%60|0].join(":")
}
alert(fn(t1,t2));