Примечание: Для обоих примеров я предполагаю вычитание 70 минут (как указано в вашем примере), но код можно редактировать для другой суммы.
Если вы можете использоватьСторонняя библиотека, такая как moment.js , становится очень тривиальной:
myFunction = function() {
var hour = document.getElementById("selectHour").value;
var minute = document.getElementById("selectMinute").value;
var ampm = document.getElementById("selectAMPM").value;
var time = hour + ":" + minute + " " + ampm;
var m = new moment(time, 'h:m a');
document.getElementById("result").innerHTML = m.subtract(70, 'minutes').format('h:m a');
}
Пример можно посмотреть здесь: jsFiddle
Ifmoment.js
не вариант, тогда вы могли бы использовать что-то вроде следующего в качестве отправной точки.
Примечание: Javascript не делает мод с отрицательными значениями, как я ожидал, поэтому я создал свойсобственные ответы, основанные на ответе: SO Post
mod = function(a, b) {
return ((a%b)+b)%b;
}
myFunction = function() {
// convert hour and minute to integer values
var hour = parseInt(document.getElementById("selectHour").value);
var minute = parseInt(document.getElementById("selectMinute").value);
var ampm = document.getElementById("selectAMPM").value;
// convert to 24 hour time
if (ampm === "pm" && hour > 12) hour += 12;
if (ampm === "am" && hour === 12) hour = 0;
// Get the time and minutes you want to subtract in hours
var timeInHours = hour + (minute / 60);
var timeToSubtractInHours = 70 / 60;
// Get the difference in time
var timeDiff = (timeInHours - timeToSubtractInHours);
// Get the mod to make sure it's between 0-23
var modDiff = mod(timeDiff,24);
// Pull out the hours and minutes
var h = modDiff | 0
var min = (modDiff % 1) * 60 | 0;
// Print the time
document.getElementById("result").innerHTML = h + ":" + min;
}
Пример не конвертируется обратно в 12-часовое время (с am и pm), но я подумал, что это было достаточно просто, чтобыпропустить.Там могут быть более простые и быстрые способы сделать это, но это то, что впервые пришло ко мне.Измените, как считаете нужным.
См. Пример для этого здесь: jsFiddle