HTML5 replaceState - это ответ, как уже упоминалось Vivart и geo1701. Однако он не поддерживается во всех браузерах / версиях. History.js обертывает функции состояния HTML5 и предоставляет дополнительную поддержку для браузеров HTML4.
Я сделал это, добавив время останова как отрицательные минуты.
$(".calculate").click(function(){
// Refer to starting hours and ending hours which get their value from chosen fields
var secondTime = startHr + ":" + startMin +":00";
var firstTime = endHr + ":" + endMin + ":00";
let startHour = new Date().setUTCHours(...(firstTime.split(":")));
let endHour = new Date().setUTCHours(...(secondTime.split(":")));
let finalHours = new Date(startHour - endHour);
finalHours.setMinutes(- +pause);
// ------------
var workedHours = finalHours.getUTCHours() +":"+ finalHours.getUTCMinutes();
$('.workHours').text(workedHours);
})
В вашем примере вы вычитали милисекунды (точнее, миллисекунды, прошедшие с 1 января 1970 года по Гринвичу), поэтому я предполагаю, что когда JS округляет результаты округления до более низкого значения, в результате чего на 1 минуту меньше, чем ожидалось. Но я не доказал это.