В основном этот скрипт вычитает StartTime из EndTime, используя плагин jQuery. Форма html заполняется стартовым и конечным временем в формате HH: MM, поле ввода заполняется результатом, оно работает, за исключением одной проблемы:Странная ошибка в этом сценарии расчета времени?
Если время начала с 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; }
Когда номер начинается с нуля, стандарт ECMAScript позволяет реализацию ParseInt(), чтобы интерпретировать его как восьмеричное число или десятичное число, поэтому это может работать в одном браузере или нет на другом. Чтобы исправить это для всех, используйте «parseInt (startTime [0], 10)», который заставляет базу 10. –
Спасибо, ребята, за ответ и объяснение. –
У меня есть еще одна проблема с этим кодом, есть ведущее 0, когда минутная часть больше 10, поэтому она возвращает что-то вроде 11: 013, а не 11:13, может ли это быть исправлено с помощью математики или будет ли инструкция if исправлять это ? Например, если количество элементов> 2, удалите первый элемент? Я собирался просто выполнить PHP-скрипт, чтобы удалить это, когда форма отправлена, но она не выглядит хорошо для пользователя. –