查找Jquery / JS两个日期之间的天数

我已经针对这个问题进行了广泛的搜索,到目前为止,我找不到的代码都没有工作,我所做的代码也是如此,所以我开始担心这是不可能的。

我们有两个日期,格式为mm/dd/yy而不是dd/mm/yy ,例如11/30/2012

然后我使用以下脚本:

 if ( jQuery("#book_room_type").val() == "La Maison" ) { Date.prototype.DaysBetween = function() { var intMilDay = 24 * 60 * 60 * 1000; var intMilDif = arguments[0] - this; var intDays = Math.floor(intMilDif/intMilDay); return intDays; } var d1 = new Date(jQuery("#dateto").val()); var d2 = new Date(jQuery("#datefrom").val()); alert("you only have".d1.DaysBetween(d2)); return false; } 

然而,这并没有返回dateto和datefrom字段之间的天数,它现在让我发疯,请任何建议表示赞赏。

谢谢,西蒙

参考kalvins建议:

 if ( jQuery("#book_room_type").val() == "La Maison" ) { alert("test"); var dategap = (jQuery("#dateto").val().getTime() - jQuery("#datefrom").getTime()) / (1000 * 60 * 60 * 24); alert(dategap); alert("test2"); return false; } 

这在第二次警报时失败,并没有提醒日期。

代码有效,但在警报中使用点而不是+会出现串联错误

演示: http : //jsfiddle.net/YgY5c/

我建议你使用datejs – http://www.datejs.com/ – 来解析和计算你的日期。

或者,如果你想写简单的js

 function(date1, date2) { return (date1.getTime() - date2.getTime()) / (1000 * 60 * 60 * 24); } 

以小数forms返回“days”。

放置结果或只是应用Math.abs() ,您将得到正小数。