4

基本的に、このスクリプトはEndTimeからStartTimeを減算し、jQueryプラグインを使用して、htmlフォームにHH:MMの形式で開始時刻と終了時刻を入力します。入力フィールドに結果を入力します。1つの問題を除いて機能します。

開始時刻が08:00から09:59の間にある場合、奇妙な結果が返されます。正確には、結果は10時間ずれています。なぜですか?

他のすべての入力は正しく計算されます!

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; }
4

1 に答える 1

9

あなたが数8で数学の問題を抱えているときはいつでも、それは8進法に変換される何かです:)

で始まる0 数字は、Javascriptでは8進数として解釈されます。

01..07どちらのシステムでも同じなので、からは問題ありません。

しかし0809システムには存在しないため、を返し0ます。

解決策も提供するこの質問も参照してください。parseIntを実行するときに基本パラメーターを指定します。

parseInt("09", 10);  // base 10
于 2010-07-05T19:30:50.657 に答える