guarda è inutile stare a controllare quella funzione finchè non si chiarice questo: cosa è
dat.innerHTML
cioè che contenuti ha questo "dat"?
Il tuo script sembra presumere che il suo innerHTML abbia sicuramente il formato atteso - e questo non è così scontato per chi legge qui.
ma poi, soprattutto, anche ammesso il formato sia quello atteso, tu fai uno split di un valore che, poichè splittabile, è sicuramente stringa. Poi suoi suoi elementi splittati fai dei confronti con operatori NUMERICI.
Quando hai un dato stringa, se vuoi confrontarlo con un numero devi farne il parseInt
time[0]=parseInt(time[0])
time[1]=parseInt(time[1])
time[2]=parseInt(time[2])
ps che, peraltro, potrebbero pure dare NaN come valore, se il formato dell' innerHTML non è, appunto, quello previsto