0

I want to calculate the difference between startdatetime and enddatetime

here is my html code:

StartDate:<input size="16" type="text" placeholder="YYYY-MM-DD" id="from_date" name="from_date" value="">

Enddate:<input size="16" type="text" placeholder="YYYY-MM-DD" id="to_date" name="to_date" onchange="calservicedays();" value="">

StartDate:2013-09-07 11:09:40

Enddate:2013-09-08 11:15:50

Below is my javascript code

function calservicedays(){
    var start = $("#from_date").val();
    var startDate = new Date(start);    
    var end = $("#to_date").val();
    var endDate = new Date(end);
    var startcom =  Date.parse(start);
    var endcom = Date.parse(end);
    var diff = Math.floor((endDate.getTime() - startDate.getTime()) / 86400000);
    if((startDate != null && endDate != null) && (start != '' && end != '')){
        if((startDate != null && endDate != null) && (start != '' && end != '') && (startcom < endcom)){
            var diff = Math.floor((endDate.getTime() - startDate.getTime()) / 86400000);
            if(diff != "")
              $("#service").val(diff);
        }else{
                alert("To Date cannot be less than or equal to From date");
                 $("#service").val('');
                return false;
            }
    }
 }

With this javascript code i am just getting the difference in days. I want difference in days as well as time.

Can anyone tell me what changes i have to make in my javascript code to get the difference of date and time.

Thanks

Yogesh Suthar
  • 30,424
  • 18
  • 72
  • 100
Dev
  • 612
  • 2
  • 13
  • 33

3 Answers3

1

Using date objects it will be easy refer to this Date Nice Function

jsfiddle

var date1 = new Date("7/11/2010");
var date2 = new Date("12/12/2010");
var timeDiff = Math.abs(date2.getTime() - date1.getTime());
var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24)); 
alert(diffDays);
Shakti Patel
  • 3,762
  • 4
  • 22
  • 29
1

try this,

var start = $('#arr_date').datepicker('getDate');
var end   = $('#dep_date').datepicker('getDate');
var days   = (end - start)/1000/60/60/24;

and

$(function() {
  var start = $('#arr_date').val();
  var end = $('#dep_date').val();
  var diff = new Date(end - start);
  var days = diff/1000/60/60/24;
  $('#num_nights').val(days);  
});

and

var date_diff = Math.abs((date2.getTime() - date1.getTime())/86400000);
Manish Sharma
  • 2,406
  • 2
  • 16
  • 31
1
var k=Math.round(Math.round(new Date(2013,09,08,11,15,50)-new Date(2013,09,07,11,09,40)) / 86400000);
var k1=Math.round(new Date(2013,09,08,11,15,50)-new Date(2013,09,07,11,09,40)) % 86400000;
var h=Math.round(k1/3600000);
var h1=k1%3600000;
var m=Math.round(h1/60000);
var m1=h1%60000;
var s=Math.round(m1/1000);
var s1=s%1000;
alert("diff" +k+"days"+h+"hours"+m+"minutes"+s+"seconds"+s1+"milliseconds");
Arunkumar
  • 5,150
  • 4
  • 28
  • 40