function calcDiffrence($timeFields) {
var timeFrom = getDateVal($timeFields.get(0));
var timeUntil = getDateVal($timeFields.get(1));
if(!timeFrom || !timeUntil) return 0;
let diffInMilliSeconds = Math.abs(timeUntil - timeFrom) / 1000;
const hours = Math.floor(diffInMilliSeconds / 3600) % 24;
diffInMilliSeconds -= hours * 3600;
const minutes = Math.floor(diffInMilliSeconds / 60) % 60;
diffInMilliSeconds -= minutes * 60;
return hours+':'+('0' + minutes).slice(-2);
}
function getDateVal(el){
var splittedTime = $(el).val().split(':');
if (splittedTime.length != 2) return false;
var date = new Date();
date.setHours(splittedTime[0]);
date.setMinutes(splittedTime[1]);
return date;
}
$.fn.setResult = function($timeFields) {
var result = calcDiffrence($timeFields);
$(this).val(result);
}
var $timeFields = $('[data-name="tfTimeFrom"],[data-name="tfTimeUntil"]');
$timeFields.on('change', function() {
$('[data-name="tfTimeDiffrence"]').setResult($timeFields);
}).trigger('change');