计算输入的日期和时间之间的差异?

Leo*_*ham 7 javascript jquery datetime

我有两个输入字段来输入日期,这是一个jquery datepicker.使用它我可以选择日期.他们是登记入住和退房日期.

同样,我有两个选择框,我可以从中选择时间.他们是登记入住和退房时间.

例如:

Check in date: 01/05/2014
Check in time: 13:00


Check out date: 04/05/2014
Check out time: 18:00
Run Code Online (Sandbox Code Playgroud)

我想要的结果:(01/05/2014 13:00)和(04/05/2014 18:00)之间的差异,如3 天5小时

小提琴

现在我得到了结果 NAN

以下是我使用的脚本:

$(document).ready(function(){
    $("#diff").focus(function(){
        var start = new Date($('#din').val());
        var end = new Date($('#dou').val());
        var diff = new Date(end - start);
        var days = Math.floor(diff/1000/60/60/24);
        var hours = Math.floor((diff % ( 1000 * 60 * 60 * 24)) / 1000 / 60 / 60);
         $("#diff").val(days+' Day(s) '+hours+' Hour(s)');
    });
});
Run Code Online (Sandbox Code Playgroud)

Tus*_*har 1

Fiddle Demo

$(document).ready(function () {
    function ConvertDateFormat(d, t) {
        var dt = d.val().split('/'); //split date
        return dt[1] + '/' + dt[0] + '/' + dt[2] + ' ' + t.val(); //convert date to mm/dd/yy hh:mm format for date creation.
    }
    $("#diff").focus(function () {
        var start = new Date(ConvertDateFormat($('#din'), $('#tin')));
        var end = new Date(ConvertDateFormat($('#dout'), $('#tout')));
        console.log(start, end);
        var diff = new Date(end - start);
        var days = Math.floor(diff / 1000 / 60 / 60 / 24);
        var hours = Math.floor((diff % (1000 * 60 * 60 * 24)) / 1000 / 60 / 60);
        $("#diff").val(days + ' Day(s) ' + hours + ' Hour(s)');
    });
});
Run Code Online (Sandbox Code Playgroud)


ConvertDateFormat(d,t)将日期转换为当前格式。

要得到new Date('mm/dd/yy hh:mm')


日期
更新

问题

打字错误

var end = new Date($('#dout').val());
//                         ^ missing t in id it's dout not dou
Run Code Online (Sandbox Code Playgroud)

这使得无效,所以当你减去 时date你会得到。NaNinvalid Date

使用您的代码更新了 Fiddle 演示