Question

En gros ce script soustraira StartTime de EndTime, en utilisant un jQuery plug-in le formulaire HTML est rempli avec début et de fin dans le format HH: MM, un champ de saisie est renseignée avec le résultat, cela fonctionne sauf un problème:

Si le temps de démarrage est 8:00-9:59 juste renvoie des résultats étranges - résultats sont 10 heures de congé pour être précis, pourquoi

Toutes les autres entrées calculer correctement!

function setValue() { 
var startTime = document.getElementById('ToilA'); 
var endTime = document.getElementById('EndHours'); startTime = startTime.value.split(":"); 
var startHour = parseInt(startTime[0]); 
var startMinutes = parseInt(startTime[1]); 
endTime = endTime.value.split(":"); 
var endHour = parseInt(endTime[0]); 
var endMinutes = parseInt(endTime[1]); 
//var hours, minutes; 
var today = new Date(); 
var time1 = new Date(2000, 01, 01, startHour, startMinutes, 0); 
var time2 = new Date(2000, 01, 01, endHour, endMinutes, 0); var milliSecs = (time2 - time1); 
msSecs = (1000); 
msMins = (msSecs * 60); 
msHours = (msMins * 60); 
numHours = Math.floor(milliSecs/msHours); 
numMins = Math.floor((milliSecs - (numHours * msHours)) / msMins); 
numSecs = Math.floor((milliSecs - (numHours * msHours) - (numMins * msMins))/ msSecs); numSecs = "0" + numSecs; numMins = "0" + numMins; DateCalc = (numHours + ":" + numMins); 

document.getElementById('CalculateHours').value = DateCalc; }
Était-ce utile?

La solution

Chaque fois que vous avez des problèmes de mathématiques avec le numéro 8, il est quelque chose se converti dans le système octal:)

Les chiffres commençant par 0 sont interprétées comme des nombres octaux en Javascript .

Il n'y a pas de problème de 01..07, parce qu'ils sont les mêmes dans les deux systèmes.

Mais 08 et 09 n'existent pas dans le système, de sorte qu'ils reviennent 0.

Voir aussi cette question qui fournit également une solution: Spécifiez la base paramètre lorsque vous faites le parseInt:

parseInt("09", 10);  // base 10
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top