1

I am using jQuery time picker to get start time and end time in 12hr format. I need to calculate time duration between start time and end time in HH:MM:SS format. I have the following code with me. But its returning duration like 1.1666. So what changes should I make in my code.

valueStart = $("#startTime").val();
valueStop = $("#endTime").val();
var diff =  ( new Date("1970-1-1 " + valueStop) - new Date("1970-1-1 " + valueStart) ) /    1000 / 60 / 60;
    var diffe = Math.abs(diff);
    alert(diffe);
5

3 Answers 3

2
valueStart = $("#startTime").val();
valueStop = $("#endTime").val();

var str0="01/01/1970 " + valueStart;
var str1="01/01/1970 " + valueStop;

var diff=(Date.parse(str1)-Date.parse(str0))/1000/60;
var hours=String(100+Math.floor(diff/60)).substr(1);
var mins=String(100+diff%60).substr(1);

alert(hours+':'+mins);
0
0

Try it with xdate (javaScript Date Library)

0

try this if you want in HH:MM:SS format..

var diff =
        new Date( '01/01/1970 ' + valueStop) -
        new Date( '01/01/1970 ' + valueStart );

    var sec_numb=(diff /1000)+"";
    var hours   = Math.floor(sec_numb / 3600);
    var minutes = Math.floor((sec_numb - (hours * 3600)) / 60);
    var seconds = sec_numb - (hours * 3600) - (minutes * 60);

    if (hours   < 10) {hours   = "0"+hours;}
    if (minutes < 10) {minutes = "0"+minutes;}
    if (seconds < 10) {seconds = "0"+seconds;}
    var time    = hours+':'+minutes+':'+seconds;
    alert(time);

Not the answer you're looking for? Browse other questions tagged or ask your own question.