2015-12-03 134 views
-2

我想计算两个日期之间的差异。目前,我在下面做代码:JavaScript日期差异天

function calculDiff(){ 
    var v1= $('#date_debut').val(); 
    var v2=$('#date_fin').val(); 
    var dayDiff=((v2-v1)/(24*60*60*1000)); 
    var dayDiff2=Math.floor(dayDiff); 
    console.log(v1 + ' '+ v2); 
    console.log(dayDiff + ' '+ dayDiff2); 
} 
$(document).ready(function(){ 
    $('#date_debut').datepicker().bind('change paste keyup',function(){ 
     calculDiff(); 
     return false; 
    }); 
    // 
    $('#date_fin').datepicker().bind('change paste keyup',function(){ 
     calculDiff(); 
     return false; 
    }); 
}); 

PS:我有2个输入型日期(date_debut和date_fin)

+0

那么你有什么问题? –

+0

我有Nan作为输出,并且没有DateDiff计算 – omar

+0

在不支持输入类型日期的浏览器中,$('#date_debut')。val()'返回的值是多少? – RobG

回答

1

试试这个

var now = "04/09/2013 15:00:00"; 
var then = "04/09/2013 14:20:30"; 
moment.utc(moment(now,"DD/MM/YYYY HH:mm:ss").diff(moment(then,"DD/MM/YYYY HH:mm:ss"))).format("HH:mm:ss") 

见多 http://momentjs.com/docs/#/displaying/difference/

+0

中选择非常感谢,但那不是我正在寻找的! – omar

1

我认为你想要天差异,你可以使用下面的代码来获得天差异。

var start_date = new Date($('#date_debut').val()); 
var end_date = new Date($('#date_fin').val()); 

var diff = new Date(end_date - start_date); 
var days = diff/1000/60/60/24; 
console.log("diff=>"+days); 

当用户选择第一个日期打开其他日期日期选择器来选择剩余字段,然后计算差异。

+0

我得到的差异=> NaN – omar

+0

我已经更新了我的答案,请现在检查,我提供了评论,如果不工作,然后转换为日期e.x new Date(value); –

+0

现在,它的工作原理非常感谢。但仍然是日期格式,如何使这种格式dd/mm/yyyy? – omar